高可用注册中心
在微服务架构这样的分布式环境中,需要充分考虑发生故障的情况,所以在生产环境中必须对各个组件进行高可用部署,对于微服务如此,对于服务注册中心也一样。如果一直使用单节点的服务注册中心,这在生产环境中显然并不合适,需要构建高可用的服务注册中心以增强系统的可用性。
在Eureka的服务治理设计中,所有节点即是服务提供方,也是服务消费方,服务注册中心也不例外。Eureka Server的高可用实际上就是将自己作为服务向其他服务注册中心注册自己,这样就可以刑场一组互相注册的服务中心,以实现服务清单的互相同步,达到高可用的效果。
1. 新建maven工程,骨架选择quickstart,工程名称:demo-eureka-ha
2. 加入相关依赖:
3. 在src\main\resources目录下新建application-peer1.yml文件,作为peer1服务中心的配置,并将serviceUrl指向peer2:
4. 在src\main\resources目录下新建application-peer2.yml文件,作为peer2服务中心的配置,并将serviceUrl指向peer1:
5. 修改系统hosts文件,添加对peer1和peer2的转换:
6. 在src\main\resources目录下新建application.yml文件:
7. 编写启动类:
8. 启动项目,启动第一个项目的时候,会报错,可暂时忽略,是因为它没有找到peer2这个注册中心,启动完毕后,将application.yml文件里的环境改为peer2,再次启动项目(注:不要关闭第一个启动的项目),浏览器分别访问两个项目:
9. 相应的,服务提供者也需要修改一下配置,修改demo-member工程的配置文件,将两个注册中心都配置进去:
10. 启动demo-member项目,访问注册中心,发现两个注册中心都注册了会员服务。