1. Eureka Server集群同步机制
一般eureka server在部署的时候,都会选择集群部署,否则只用一个eureka server的话,万一出现了单点故障的话,那岂不是整个系统直接GG
同时eureka server的集群也不是类似主从的概念,所有的eureka server都保存了全部的注册表信息,但是大家的角色都是一样的,eureka server中的一个节点叫做一个peer,可以认为eureka server集群中的节点都是peer to peer的模式
将eureka的集群机制和zookeeper对比一下,zookeeper的集群一般将角色区分为leader和follower,只有leader才有写的权限,follower只能读,那么当需要数据同步的时候,就需要leader写入,然后将信息同步给其他所有的follower才算完成了数据同步。而eureka server集群则不是这样,集群中的eureka server都是一样的角色,服务可以向任意一个eureka server进行注册,然后由这个eureka server同步给集群中的其他eureka server
接下来我们来看看eureka server集群中添加一个eureka server的话,是怎么实现的
首先会初始化一个类叫做PeerEurekaNodes,这个类其实就是代表了eureka server的集群中的所有节点,里面包含了注册表,eureka server的配置等信息
当eureka server进行初始化的时候,会调用PeerEurekaNodes中的start()方法,先会从配置文件中读取到其他的eureka server的url地址,然后更新PeerEurekaNodes&