当先锋百科网

首页 1 2 3 4 5 6 7

Eureka 集群的工作原理

假设我们又三台Eureka server组成的集群,这三台Eureka Server就组成了一个跨区域的高可用集群,只要三个地方的没有出现问题,那整体的性能都不会影响整个架构的稳定性;

在这里插入图片描述
Eureka Server 通过replicate来同步数据,相互之间没有区分主节点和从节点,所有的节点都是平等的,在这种架构之下,节点通过彼此注册来提高可用性,每个节点需要添加一个或者多个有效的serviceURL来指向其他的节点;

若某一台服务器发生宕机,Eureka Client的请求将会自动切换到新的Eureka Server 节点,当宕机后的服务器重新恢复之后,Eureka 会将其再次纳入到服务器的集群管理之中,当节点开始接受客户端的请求时,所有的操作都会进行节点之间的复制,将请求复制到其他的Eureka Server 当前所知的所有节点中;

另外,Eureka Server 的同步将会遵循一个原则:只要有一条边将节点进行连接,就可以进行信息的传播和同步,所以,如果存在多个节点,只需要将节点之间来两两连接起来,那么其他的注册中心就可以共享信息,每个Eureka Server 同时也是Eureka Client ,多个Eureka Server之间通过P2P的方式来完成服务注册表的同步;

Eureka Server 集群之间的状态采用的是异步方式同步数据的,所以没有办法保证数据都是一致的,不过基本可以保证最终的状态将会是一致的,Eureka 分区,Eureka 提供了Region 和 Zone两个概念来进行区分;
1.region: 地理上的不同区域;
2.Zone: 可以理解为Region 内具体的机房;

Eurka 保证了AP(可用性(Availability)、分区容错性(Partion tolerance)、而没有保证一致性)
Eureka Server 的各个节点都是平等的,几个节点挂掉也不会影响其他节点的正常工作,剩余的节点依然可以提供注册和查询服务,而Eureka Client 在向某个Eureka 注册时候,,如果发现它连接失败,将会自动切换至其他的节点,只要有一台Eureka Server 还在,就可以保证其可用性,只不过没办法保证强一致性(信息不是最新的);