一。集群方案及部署思路:
如果是单节点的注册中心,是无法保证系统稳定性的,当然现在项目部署架构不可能是单节点的。
集群节点的部署思路:通过运行多个实例并请求他们相互注册,来完成注册中心的高可用性(结伴注册)
注意:
用于本机模拟的前期准备工作:将电脑上hosts 添加如下配置 (linux下位置:/etc/hosts):
127.0.0.1 localhost server1 server2
View Code
二 设计步骤
在这里简单创建一个项目:register-center-node1的项目工程,和我们先前的register-center项目工程一模一样
register-center-node1的application.yml配置:
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
View Code
register-center的application.yml配置:
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
View Code
注意以下几点:
- 与先前独立运行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 得到如下界面:
![]()
我们可以看到注册中心地址已经标记为集群模式了