Eureka集群保持数据一致性
Eureka 的设计理念保留可用及过期的数据总比丢掉可用的数据好。分布式数据复制方式分布式系统的数据在多个副本之间的复制方式,主要有主从复制,Master-Slave模式;所有写操作提交到主服务,再由主服务更新到从服务;写压力集中在主服务上,从服务分担读请求;对等复制,Peer to Peer,副本间不分主从,任何副本都可以接受写操作,然后副本间进行数据更新;但副本间数据同步时...
·
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 的数据。
- 心跳检测(续约),来进行数据的最终修复
更多推荐
已为社区贡献1条内容
所有评论(0)