一。集群方案及部署思路:
如果是单节点的注册中心,是无法保证系统稳定性的,当然现在项目部署架构不可能是单节点的。
集群节点的部署思路:通过运行多个实例并请求他们相互注册,来完成注册中心的高可用性(结伴注册)
注意:
用于本机模拟的前期准备工作:将电脑上hosts 添加如下配置 (linux下位置:/etc/hosts):
![](https://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif)
127.0.0.1 localhost server1 server2
二 设计步骤
在这里简单创建一个项目:register-center-node1的项目工程,和我们先前的register-center项目工程一模一样
register-center-node1的application.yml配置:
![](https://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif)
1 server: 2 port: 8081 3 spring: 4 application: 5 name: register-center 6 eureka: 7 client: 8 service-url: 9 defaultZone: http://server1:8080/eureka 10 fetch-registry: true 11 instance: 12 hostname: server2
register-center的application.yml配置:
![](https://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif)
1 server: 2 port: 8080 3 spring: 4 application: 5 name: register-center 6 eureka: 7 client: 8 service-url: 9 defaultZone: http://server2:8081/eureka 10 instance: 11 hostname: server1
注意以下几点:
- 与先前独立运行register-center不同,大家注意defaultZone属性,两个注册中心地址都指向对方进行结伴注册
- 去掉fetch-registry 与 register-with-eureka配置(其实这样做就会取对应的默认值,两个值均为true)
- 启动第一个注册中心时会报Cannot execute request on any known server的错误,暂时不管它,实际上eureka注册中心的ui界面是能打开的
- 所有注册中心的节点的spring.application.name必须保持一致。
- 当需要往注册中心集群注册服务时的写法:defaultZone:http://server1:8080/eureka,http://server2:8081/eureka
启动完毕后,访问地址:http://localhost:8080 得到如下界面:
我们可以看到注册中心地址已经标记为集群模式了