需要充分考虑发生故障的情况下,构建高可用的服务注册中心以增强系统的可用性。
在Eureka的服务治理设计中,所有的节点既是服务的提供方,也是服务的消费方,包括服务注册中心。
上一步我们将服务注册中心的自我注册关闭了,Eureka Server的高可用实际上就是
将自己作为服务向其他的服务注册中心注册自己
,这样就形成了一组互相注册的服务注册中心,实现清单的互相同步,达到高可用的效果。
1、搭建高可用的服务注册中心集群(双节点)
创建application-peer1.properties,作为peer1服务中心的配置,并将servuceUrl指向peer2:
再
创建application-peer2.properties,作为peer2服务中心的配置,并将servuceUrl指向peer1:
修改本地hosts文件,使peer1、peer2服务名可以正确的访问:
Linux下路径:/etc/hosts;
Windows下路径:C:\Windows\System32\drivers\etc\hosts;
# 使得peer1、peer2可以正确的映射
127.0.0.1 peer1
127.0.0.1 peer2
分别使用两个配置文件启动两个集群的注册中心:
发现问题: 注册中心双方都处于unavailable-replicas(不可用分片)
解决:在peer1、peer2的配置文件中,未配置注册功能,可能注册中心需要指定开启自身注册(个人猜测):
重启两者服务,进入到available-replicas(可用分片),搭建完毕:
服务注册:
将之前的hello-service服务,修改配置文件,将defaultZone注册到peer1、peer2两者注册中心下:
启动hello-service服务,
其向两个注册中心注册了服务,但两个集群的注册中心都可以查看到注册的服务,从而实现了服务注册中心的高可用。
完毕。