springCloud学*【五】:分布式配置管理Spring Cloud Config服务端和config客户端【实例】

发布于:2021-06-22 11:40:46

首先祝自己10.24节日加班快乐,本文记录昨夜奋战到凌晨3点的学*笔记


虽然每天如此。。。。学*的时间都是挤出来的





Spring Cloud Config服务端和config客户端
首先祝自己10.24节日加班快乐,本文记录昨夜奋战到凌晨3点的学*笔记spring cloud Config介绍:通过以上介绍可以了解到,config分服务端和客户端开始demo新建一个springboot项目(==config服务端==)那么读到配置之后干嘛用呢?接下来使用
自此springcloud五个核心组件学*完了,接下来就该搞各种小组件和组件的各种骚操作了
★[前4篇文章](https://blog.csdn.net/m0_48373030/category_10460457.html)用的[cloud-demo项目git地址](https://gitee.com/s_leilei/cloud-demo.git)★本文章以及之后新的知识记录用的[crazy-cloud项目git地址](https://gitee.com/s_leilei/crazy-cloud.git)也就是前面的那个demo项目整理了一下,操作一样


spring cloud Config介绍:

Spring Cloud Config为分布式系统中的外部化配置提供服务器和客户端支持。使用Config Server,您可以集中管理所有环境中应用程序的外部属性。
特征:
Spring Cloud Config Server功能:



HTTP,用于外部配置的基于资源的API(名称-值对,或等效的YAML内容)
加密和解密属性值(对称或不对称)
可轻松地使用Spring Boot应用程序嵌入 @EnableConfigServer



Config Client功能(用于Spring应用程序):



绑定到Config Server并Environment使用远程属性源初始化Spring
加密和解密属性值(对称或不对称




以上摘自官网


通过以上介绍可以了解到,config分服务端和客户端
开始demo新建一个springboot项目(config服务端
    新建module依赖如下

    我还想把config注册到eureka中,所以添加了eureka的客户端,完整pom如下


xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
4.0.0

org.springframework.boot
spring-boot-starter-parent
2.3.4.RELEASE


com.crazy
c-config-server-8411
0.0.1-SNAPSHOT
c-config-server-8411
config服务端


1.8
Hoxton.SR8




org.springframework.boot
spring-boot-starter-web


org.springframework.cloud
spring-cloud-config-server


org.springframework.cloud
spring-cloud-starter-netflix-eureka-client



org.springframework.boot
spring-boot-devtools
runtime
true


org.projectlombok
lombok
true


org.springframework.boot
spring-boot-starter-test
test


org.junit.vintage
junit-vintage-engine








org.springframework.cloud
spring-cloud-dependencies
${spring-cloud.version}
pom
import







org.springframework.boot
spring-boot-maven-plugin







    配置文件application.yml

server:
port: 8411 # 设置服务提供者的端口号
eureka:
client:
service-url:
defaultZone: http://crazy1.com:8611/eureka/ #刚启动的时候由于没有启动eureka服务可能会报错,也可以不用这个
spring:
application:
name: E-config-server # 网关项目模块所提供服务的名称
cloud:
config:
server:
git:
uri: https://gitee.com/s_leilei/crazy-cloud-config.git #git地址(我这里是用的码云)
username: git用户名
password: git密码
skip-ssl-validation: false #是否一个SSL证书检测的玩意

    启动类注解

package com.crazy;

import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.cloud.config.server.EnableConfigServer;
import org.springframework.cloud.netflix.eureka.EnableEurekaClient;
import org.springframework.context.ApplicationContext;
import org.springframework.core.env.Environment;

@SpringBootApplication
@EnableConfigServer
@EnableEurekaClient
public class ServerConfigApplication {

private static final Logger logger = LoggerFactory.getLogger(ServerConfigApplication.class);

public static void main(String[] args) {
ApplicationContext apps = SpringApplication.run(ServerConfigApplication.class, args);
Environment env = apps.getEnvironment();
logger.info(">>>>>>config服务启动成功");
logger.info(">>>>>>地址: http://{}:{}",env.getProperty("spring.cloud.client.ip-address"),env.getProperty("server.port"));
logger.info("启动成功之后,测试直接通过config-server服务去读取git资源:http://localhost:8411/crazy-client/test/develop");
//url crazy-clinet 资源名 test 文件后缀 develop 分支
}

}

    项目启动
    测试通过自己启动的192.168.241.141:8411去读取git上的配置文件。


先看git上的配置文件:如下




测试能否通过自己的config服务读取到git上的配置文件
第一种访问方式:http://本地config服务IP:端口/git文件名/profilesName(dev或test或其他)/要访问的分支
http://localhost:8411/crazy-client/test/develop


第二种访问方式:http://本地config服务IP:端口/git仓库分支/文件名-dev或者test或者其他.yml
http://localhost:8411/develop/crazy-client-dev.yml



    自此,通过本地的config服务已经成功读取到git仓库里的地址了。总结:


1、新建了一个项目来当作config服务端用来链接自己配置文件存放的地方(我用的码云)。
2、配置了自己的git仓库项目地址。
3、启动之后,通过访问自己本地的config服务去读取码云上存放的配置文件
4、官网上给的访问方式:
/{application}/{profile}[/{label}]
/{application}-{profile}.yml
/{label}/{application}-{profile}.yml
/{application}-{profile}.properties
/{label}/{application}-{profile}.properties



那么读到配置之后干嘛用呢?接下来使用
    搞一个eureka的服务端来当作config的客户端。(先看之前的配置,在这一章的配置)


向之前服务的注册发现与消费说的, 如果配置注册中心搞集群部署的话,eureka的配置一大堆,以下只是简单的注册中心配置:





eureka的配置还有很多,这里只做测试,配置基本的。
所以我们要把这个配置丢到git上去(可以私仓。不会被别人看到。。。)
先看看git上的关于eureka的配置文件crazy-eureka.yml

为了区分,端口不同,eureka服务名不同。
开始新建moudle→eureka服务端:当作config客户端
新建springboot项目依赖如下:




pom.xml




xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
4.0.0

org.springframework.boot
spring-boot-starter-parent
2.3.4.RELEASE


com.crazy
c-config-eureka-8611
0.0.1-SNAPSHOT
c-config-eureka-8611
config配置eureka的模块


1.8
Hoxton.SR8




org.springframework.boot
spring-boot-starter-web


org.springframework.cloud
spring-cloud-starter-config


org.springframework.cloud
spring-cloud-starter-netflix-eureka-server



org.springframework.boot
spring-boot-devtools
runtime
true


org.projectlombok
lombok
true


org.springframework.boot
spring-boot-starter-test
test


org.junit.vintage
junit-vintage-engine








org.springframework.cloud
spring-cloud-dependencies
${spring-cloud.version}
pom
import







org.springframework.boot
spring-boot-maven-plugin







由于config服务端现在能拿到git上的配置,我们让eureka去从config服务端读取git上的配置,所以eureka的配置可以很少。
两个配置文件:application.yml(应用级别配置),bootstrap.yml(系统级别配置)如下
bootstrap.yml配置去哪里拿配置。就像上面的浏览器去拿一样

application.yml配个名字吧。

然后eureka服务的主启动类

启动:我们配置的eureka去http://crazy1.com:8411(本地的config服务。我的localhost是crazy1.com)拿配置。拿的具体配置是develop分支的crazy-eureka文件(不要后缀名)的profile为dev的配置

git上crazy-eureka.yml的dev配置的端口是8611,所以这个eureka启动起来就是8611的端口
并且显示了,config from server at : http://crazy1.com:8411。配置信息来自config服务端,实际上是config服务段去git上读取了配置给了eureka
访问:localhost:8611

再看一眼git上的eureka的配置

成功



比如eureka打成war包了,可以通过命令参数去修改让他去读另一个配置
比如通过maven讲eureka服务打成jar包



把jar扔到桌面去,通过java -jar *.jar [--spring]启动并修改配置
我们让他去执行test不执行dev了。打包的时候是dev啊
桌面shift+右键打开cmd命令窗口或者powershell窗口:

打包的时候是dev,通过命令让他去执行test的配置,应该启动完之后是下面这个配置才对


访问测试:

如果直接在git上改一下配置,让eureka8612也注册到8611里面去会怎么样呢???
好奇宝宝的心态。。。搞一下
git在线编辑,我们改了如下属性:

没弄热部署插件工具,直接手动*粢幌掳伞!!!!

一样的jar包一样的命令。走起

还是这个地址,看看去

改的配置让eureka去挂到了crazy1.com的eureka注册中心,并且发现了eureka8611中的config服务端。再看看第一个eureka呢
大写的握草。好神奇哦

搞定。手工,完事再去吧sys服务和user服务多搞几个。


自此springcloud五个核心组件学*完了,接下来就该搞各种小组件和组件的各种骚操作了

前面4篇用的demo整理了一下。
新建了一个项目叫crazy-cloud 跟之前的一样。无非多了几个相同的模块。
如下:



★前4篇文章用的cloud-demo项目git地址
★本文章以及之后新的知识记录用的crazy-cloud项目git地址也就是前面的那个demo项目整理了一下,操作一样

相关推荐

最新更新

猜你喜欢