Eureka Server的高可用实际上就是将自己作为服务向其他服务中心注册自己,这样就可以形成一组相互注册的服务注册中心,一世爱你服务清单的互相同步,达到高可用的效果。
双节点的服务注册中心集群
在原来的服务中心得项目中新建两个properties
application-peer1.properties,作为peer1服务中心的配置,将serviceUrl指向peer2
server.port=1111
eureka.instance.hostname=peer1
eureka.client.serviceUrl.defaultZone=http://peer2:1112/eureka/
application-peer2.properties,作为peer2服务中心的配置,将serviceUrl指向peer1;
server.port=1112
eureka.instance.hostname=peer2
eureka.client.serviceUrl.defaultZone=http://peer1:1111/eureka/
在host中添加配置如下,host位置C:\windows\System32\drivers\etc\hosts
127.0.0.1 peer1
127.0.0.1 peer2
通过spring.profiles.active属性来启动peer1和peer2
java -jar eureka-server-0.0.1-SNAPSHOT.jar --spring.profiles.active=peer1
java -jar eureka-server-0.0.1-SNAPSHOT.jar --spring.profiles.active=peer2
运行http://localhost:1111/ ,可以看到registered-replicas中已经有peer2节点的eureka-server
运行http://localhost:1112/ ,可以看到registered-replicas中已经有peer1节点的eureka-server
修改服务提供者的路径,将注册中心指向peer1和peer2
eureka.client.serviceUrl.defaultZone=http://peer1:1111/eureka/,http://peer2:1112/eureka/
启动该服务提供者项目, 访问http://localhost:1111/ 和http://localhost:1112/ 都可以看到hello-service服务同时被注册到了peer1和peer2中。此时若断开peer1,peer2依然可以访问到hello-service,从而实现了服务注册的高可用。