您的位置:首页 > 运维架构 > 网站架构

Eureka Server的高可用

2017-01-08 21:07 323 查看
Eureka Server进行互相注册的方式来实现高可用的部署,所以我们只需要将Eureke Server配置其他可用的serviceUrl就能实现高可用部署

创建
application-peer1.properties
,作为peer1服务中心的配置,并将serviceUrl指向peer2

spring.application.name=eureka-server
server.port=1111
eureka.instance.hostname=peer1

#指向另一个注册中心
eureka.client.serviceUrl.defaultZone=http://peer2:1112/eureka/


创建
application-peer2.properties
,作为peer2服务中心的配置,并将serviceUrl指向peer1

spring.application.name=eureka-server
server.port=1112
eureka.instance.hostname=peer2

#指向另一个注册中心
eureka.client.serviceUrl.defaultZone=http://peer1:1111/eureka/


hosts
文件中添加对peer1和peer2的转换

127.0.0.1 peer1
127.0.0.1 peer2


通过
spring.profiles.active
属性来分别启动peer1和peer2

java -jar eureka-server-1.0.0.jar --spring.profiles.active=peer1
java -jar eureka-server-1.0.0.jar --spring.profiles.active=peer2


此时访问peer1的注册中心:
http://localhost:1111/。
registered-replicas
中已经有peer2节点的eureka-server了。

同样地,访问peer2的注册中心:
http://localhost:1112/
registered-replicas
中已经有peer1节点,并且这些节点在可用分片(available-replicase)之中。

我们也可以尝试关闭peer1,刷新
http://localhost:1112/
,peer1的节点变为了不可用分片(unavailable-replicas)。

服务注册与发现

pring.application.name=compute-service
server.port=2222
eureka.client.serviceUrl.defaultZone=http://peer1:1111/eureka/,http://peer2:1112/eureka/


如何配置serviceUrl来让集群中的服务进行同步

Eureka Server的同步遵循着一个非常简单的原则:只要有一条边将节点连接,就可以进行信息传播与同步

场景一

假设我们有3个注册中心,我们将peer1、peer2、peer3各自都将serviceUrl指向另外两个节点。换言之,peer1、peer2、peer3是两两互相注册的。启动三个服务注册中心,并将compute-service的serviceUrl指向peer1并启动,可以获得如下图所示的集群效果。



访问
http://localhost:1112/
,可以看到3个注册中心组成了集群,compute-service服务通过peer1同步给了与之互相注册的peer2和peer3

总结:

两两注册的方式可以实现集群中节点完全对等的效果,实现最高可用性集群,任何一台注册中心故障都不会影响服务的注册与发现
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: