搭建Config Server高可用集群
我们知道在微服务架构中有了Config Server配置中心之后就可以让我们从远程git仓库读取配置文件,以达到配置集中管理以及配合Spring Cloud Bus实现配置的自动刷新。
但是如果配置中心宕机或者出现其他故障,那将会是一个“噩耗”,可能导致所有的Config Client服务无法读取配置,甚至可能导致服务程序无法正常运行,这时候就需要我们搭建Config Server高可用集群。
下面我们在原来项目的基础上进行改造,来完成搭建包含多个Config Server的高可用集群,开发步骤如下。
① 通过IDEA工具的“Edit Configurations”的方式(或者在application-pro.yml中配置多个)添加一个端口号为7035的config-server服务节点,如下图所示。
② 修改服务config-client中的配置,因为Config Server有好几个,如果使用URI进行IP+Port或者Host+Port的方式维护可能不方便,所以我们改用discovery(服务发现)的方式连接Config Server,如程序清单14-15所示。
③ 测试运行。我们依次启动eureka-server、端口号分别为7030和7035的config-server服务以及config-client服务,服务注册情况如图所示。
然后我们模拟故障,关闭端口号为7030或者7035的任意一个config-server服务,将git配置文件中的mylog.version改为“V3.3.0”,并使用Postman发送更新接口“http://localhost:7031/actuator/bus-refresh”。再次访问时,发现配置刷新后依然可用,如图所示。
继续把另外一个config-server服务关闭,将git配置文件中的mylog.version改为“V3.4.0”,然后再次访问接口,发现还是原来的“V3.3.0”,说明配置没有更新,并且Postman访问报错,如图所示。
另外,config-client服务的控制台也出现了很多重试连接但最终连接失败的信息,如图所示。这就证明我们成功搭建了Config Server高可用集群。