之前提到过的注册中心只有一个Eureka Server,事实上也可以做一个集群,形成高可用的Eureka中心。
1、服务同步
多个Eureka Server之间也会互相注册为服务,服务提供者注册到集群中某个节点时,这个节点会把信息同步到集群中的每个节点,实现数据同步,所以客户端访问到集群的任意节点,都可以获取完整的服务列表信息。
2、搭建两条EurekaServer的集群,端口分别为:666和999
修改原来的EurekaServer配置:
server:
port: 666 # 端口
spring:
application:
name: eureka-server # 应用名称,会在Eureka中显示
eureka:
client:
service-url: # 配置其他Eureka服务的地址,而不是自己,如:999
defaultZone: http://127.0.0.1:999/eureka
- 删除了register-with-eureka=false和fetch-registry=false两个配置。因为默认值是true,这样就会把自己注册到注册中心了。
- 把service-url的值改成了另外一台EurekaServer的地址,而不是自己
3、另外一个配置恰好相反:
server:
port: 999 # 端口
spring:
application:
name: eureka-server # 应用名称,会在Eureka中显示
eureka:
client:
service-url: # 配置其他Eureka服务的地址,而不是自己,比如666
defaultZone: http://127.0.0.1:666/eureka
4、客户端注册服务到集群
eureka:
client:
service-url: # EurekaServer地址,多个地址以','隔开
defaultZone: http://127.0.0.1:666/eureka,http://127.0.0.1:999/eureka
这就模拟了简单的Eureka集群,两个EurekaServer就都有了user-service客户端的信息。但一般会有开多个user-service集群,这样获取的服务列表就会有多个了。