SpringCloud学习七:config 配置中心
发布日期:2021-05-06 22:11:19 浏览次数:33 分类:精选文章

本文共 3830 字,大约阅读时间需要 12 分钟。

springcloud config 还有apollo也是做配置中心的

官方文档1:

官方文档2:

代码地址:

一、创建Git(码云)代码管理仓库

1.1、示例

 1.2、获取三个参数: 和 目录名(每个项目配置文件的分类)和master

1.3、定义的文件名字必须与下面图片中的名字相同(区分服务名-下面4.5还会提到)

spring.application.name=service-config-client

 

1.4、Git命名规范与发布(注意命名规范

 

二、创建注册中心eureka项目

      此过程省略搭建过程

 

三、创建config-server项目

3.1、引入需要的jar包

org.springframework.boot
spring-boot-starter
org.springframework.cloud
spring-cloud-starter-netflix-eureka-client
2.2.1.RELEASE
org.springframework.cloud
spring-cloud-config-server
2.2.1.RELEASE

3.2、主配置类添加注解

@SpringBootApplication@EnableEurekaClient@EnableConfigServer

3.3、 yml文件中添加配置(这里要用到上面准备的三个参数)

注:只需要复制连接到Git配置就行

server.port=2000#注册中心服务名spring.application.name=service-config-server#服务端地址(多个用,号隔开)eureka.client.serviceUrl.defaultZone=http://admin:admin@127.0.0.1:8002/eureka/# 采用IP注册eureka.instance.preferIpAddress=true# 定义实例ID格式eureka.instance.instance-id=${spring.application.name}:${spring.cloud.client.ip-address}:${server.port}#连接到Git    #上面准备的地址spring.cloud.config.server.git.uri=https://gitee.com/whzhang110/springcloud-config.git    #上面准备的目录名spring.cloud.config.server.git.search-paths=csconfigclient    #上面准备的分支spring.cloud.config.label=master#spring.cloud.config.server.git.username=******#spring.cloud.config.server.git.password=******

 

四、创建config-client项目

4.1、引入jar包

org.springframework.boot
spring-boot-starter-web
org.springframework.cloud
spring-cloud-starter-netflix-eureka-client
2.2.1.RELEASE
org.springframework.cloud
spring-cloud-config-client
2.2.1.RELEASE

 

4.2、主配置文件只配置eureka

@SpringBootApplication@EnableEurekaClient

4.3、配置文件新增bootstrap.properties文件,为了避免错误,将application.properties文件中的配置全部移入bootstrap.properties中

server.port=2001#注册中心服务名spring.application.name=service-config-client#服务端地址(多个用,号隔开)eureka.client.serviceUrl.defaultZone=http://admin:admin@127.0.0.1:8002/eureka/# 定义实例ID格式eureka.instance.instance-id=${spring.application.name}:${spring.cloud.client.ip-address}:${server.port}#读取环境 开发|测试|试运营spring.cloud.config.profile=sit#config-server项目的环境spring.cloud.config.discovery.service-id=service-config-server#开启读取权限spring.cloud.config.discovery.enabled=true#spring.cloud.config.label=master

4.4、在controller中添加以下代码(做测试,正式环境会直接更改配置文件信息)

@RestControllerpublic class TestController {    @Value("${configInfo}")    private String configInfo;    @GetMapping("/getConfigInfo")    public Object getConfigInfo(){        return configInfo;    }}

4.5、先访问  http://127.0.0.1:2001/ser vice-config-client-slt.properties  看看文件是否改变

4.6、测试是否能拿到码云中的配置

4.7、注意事项

注:以下的参数对应bootstrap.properties配置文件和controller中的属性名

——————————重点-原理-必读——————————

 

 

 

4.6、以上操作只能证明config-server服务可以冲Git(码云)中拿到数据,还是无法热更配置文件(配置文件在服务启动时已经放进JVM虚拟机中,一般无法更改)

上面的更新在config-service中可以更新,但是config-client中无法热更,需要再config-client中添加以下配置

以下配置都在config-client中

———————————————————————————

五、手动刷新JVM中的配置文件——refresh手动刷新

5.1、不重启服务器更新配置文件,两种方法:

    5.1.1、定时刷新(影响性能)

    5.1.2、手动刷新(推荐)缺点:还是无法做到热更

5.2、第4点缺点说明

    5.2.1、修改Git(码云)中的参数

    5.2.2、config-server项目请求Git(码云),数据已经更新

    5.2.3、config-client请求后参数没有变化,说明JVM中的配置文件没有更新

5.3、开始主题——在config-client中添加

    5.3.1、导入新的jar包

org.springframework.boot
spring-boot-starter-actuator

    5.3.2、controller层中添加注解

注:

@RefreshScope@RestControllerpublic class TestController {

    5.3.3、配置文件中添加

management.endpoints.web.exposure.include=*

    5.3.4、启动项目

 5.4、测试是否成功

    5.4.1、请求前:

    5.4.2、请求中:

    5.4.3、请求后:

5.5、refresh手动刷新成功

 

六、中文乱码

参考链接:  中文乱码

七、其它

7.1、

7.2、有哪些分布式配置中心

7.3、Springcloudconfig分布式配置中心原理

    7.3.1、Git&码云存放分布式配置文件(持久存储)

    7.3.2、ConfigServer:缓存配置文件服务器(临时存储)

    7.3.3、ConfigClient:读取ConfigServer临时存储配置文件信息

7.4、

7.5、

7.6、ConfigServer为什么要放到eureka中

  1. 做集群
  2. 通过别名调用
上一篇:SpringCloud学习八:zuul网关
下一篇:SpringCloud学习六:Hystrix

发表评论

最新留言

不错!
[***.144.177.141]2025年03月29日 12时01分21秒

关于作者

    喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!

推荐文章