回顾
我们在前文中,完成了
- 利用
springcloud config
与git
完成了统一的配置,即配置中心 - 开启了
rehash
,完成了初步的动态刷新
高可用问题及方案
多个 server
前文中我们实现client
对配置中心配置的读取,是通过直连的方式(写死的 url),这显然不符合要求,因为我们的配置中心的server
需要有多个(高可用)。
方案
将配置中心server
与client
作为微服务处理,在Eureka
中注册,通过服务化的方式进行访问,同时开启多个指向同一个 git 地址的 server,就可以实现高可用。
代码改造
服务端改造
依赖
添加对 Eureka 的依赖,父 pom 已经添加,此处省略。
配置文件
1 | eureka: |
客户端改造
依赖
同上
配置文件
bootstrap.yml
1 | eureka: |
测试
- 测试服务化:启动 Eureka、server(8769)、server(8770)、client,访问
http://localhost:8771/testConfig
,得到配置信息; - 测试高可用:关闭 server(8769),再次访问以上地址,得到配置信息;
- 测试动态刷新,修改配置,上传 git,post 请求
curl -v -X POST http://localhost:8771/actuator/refresh
,再次访问以上地址,得到修改后的配置信息。