springcloud实战之Config(3)

回顾

我们在前文中,完成了

  • 利用springcloud configgit完成了统一的配置,即配置中心
  • 开启了rehash,完成了初步的动态刷新

高可用问题及方案

多个 server

前文中我们实现client对配置中心配置的读取,是通过直连的方式(写死的 url),这显然不符合要求,因为我们的配置中心的server需要有多个(高可用)。

方案

将配置中心serverclient作为微服务处理,在Eureka中注册,通过服务化的方式进行访问,同时开启多个指向同一个 git 地址的 server,就可以实现高可用。

代码改造

服务端改造

依赖

添加对 Eureka 的依赖,父 pom 已经添加,此处省略。

配置文件
1
2
3
4
eureka:
client:
service-url:
defaultZone: http://localhost:9999/eureka

客户端改造

依赖

同上

配置文件

bootstrap.yml

1
2
3
4
eureka:
client:
service-url:
defaultZone: http://localhost:9999/eureka

测试

  • 测试服务化:启动 Eureka、server(8769)、server(8770)、client,访问http://localhost:8771/testConfig,得到配置信息;
  • 测试高可用:关闭 server(8769),再次访问以上地址,得到配置信息;
  • 测试动态刷新,修改配置,上传 git,post 请求curl -v -X POST http://localhost:8771/actuator/refresh,再次访问以上地址,得到修改后的配置信息。

参考资料

配置中心(服务化与高可用)

文章目录
  1. 1. 回顾
  2. 2. 高可用问题及方案
    1. 2.1. 多个 server
    2. 2.2. 方案
    3. 2.3. 代码改造
      1. 2.3.0.1. 服务端改造
        1. 2.3.0.1.1. 依赖
        2. 2.3.0.1.2. 配置文件
      2. 2.3.0.2. 客户端改造
        1. 2.3.0.2.1. 依赖
        2. 2.3.0.2.2. 配置文件
  • 3. 测试
  • 4. 参考资料
  • |