eureka集群
开发十年,就只剩下这套Java开发体系了 >>>
1、eureka集群的目的
eureka作为注册中心,单点存在风险,如果挂了,就会找不到服务了。
2、euerka server
我们以三个节点为例,application.yml配置如下
---
spring:
profiles: peer1
eureka:
instance:
hostname: peer1
client:
serviceUrl:
defaultZone: http://peer1/eureka/,http://peer2/eureka/
---
spring:
profiles: peer2
eureka:
instance:
hostname: peer2
client:
serviceUrl:
defaultZone: http://peer1/eureka/,http://peer3/eureka/
---
spring:
profiles: peer3
eureka:
instance:
hostname: peer3
client:
serviceUrl:
defaultZone: http://peer1/eureka/,http://peer2/eureka/
此时访问peer1的注册中心:http://peer1/。registered-replicas中已经有peer2、peer3节点的eureka-server了。
同样地,访问peer2的注册中心:http://peer2/,registered-replicas中已经有peer1、peer3节点,并且这些节点在可用分片(available-replicase)之中。
我们也可以尝试关闭peer1,刷新http://peer2/,peer1的节点变为了不可用分片(unavailable-replicas)。
**注意:**
两两注册的方式可以实现集群中节点完全对等的效果,实现最高可用性集群,任何一台注册中心故障都不会影响服务的注册与发现。
3、eureka client
server:
port: 8080
spring:
application:
name: eureka-ha-demo
eureka:
client:
service-url:
defaultZone: http://peer1/eureka,http://peer2/eureka,http://peer3/eureka
或者
server:
port: 8080
spring:
application:
name: eureka-ha-demo
eureka:
client:
service-url:
defaultZone: http://peer1/eureka
client端只连接一个peer1,也会把注册信息同步到peer2、peer3中的。
因为Eureka Server的同步遵循着一个非常简单的原则:只要有一条边将节点连接,就可以进行信息传播与同步。
还没有评论,来说两句吧...