Eureka 的设计理念

保留可用及过期的数据总比丢掉可用的数据好。

分布式数据复制方式

分布式系统的数据在多个副本之间的复制方式,主要有

  • 主从复制,Master-Slave模式;所有写操作提交到主服务,再由主服务更新到从服务;写压力集中在主服务上,从服务分担读请求;
  • 对等复制,Peer to Peer,副本间不分主从,任何副本都可以接受写操作,然后副本间进行数据更新;但副本间数据同步时可能产生数据冲突;

Eureka使用对等复制

Eureka同步过程

  • Eureka Server也是一个Client,在启动时,通过请求其中一个节点(Server),将自身注册到Server上,并获取注册服务信息;
  • 每当Server信息变更后(client发起注册,续约,注销请求),就将信息通知给其他Server,来保持数据同步;
  • 在执行同步(复制)操作时,可能会有数据冲突,是通过lastDirtyTimestamp,最近一次变更时间来保证是最新数据;

比如 Eureka Server A 向 Eureka Server B 复制数据,数据冲突有2种情况:

(1)A 的数据比 B 的新,B 返回 404,A 重新把这个应用实例注册到 B。

(2)A 的数据比 B 的旧,B 返回 409,要求 A 同步 B 的数据。

  • 心跳检测(续约),来进行数据的最终修复
Logo

权威|前沿|技术|干货|国内首个API全生命周期开发者社区

更多推荐