
本文共 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中
- 做集群
- 通过别名调用
发表评论
最新留言
关于作者
