本文来说下常见的注册中心数据一致性的算法


概述

分布式系统一致性算法 应用于系统软件实现集群保持每个节点数据的同步性保持我们的集群中每个节点的数据的一致性的问题,专业的术语分布式一致性的算法。场景:Redis集群、nacos集群、mongodb集群等

在这里插入图片描述


Zookeeper

Zookeeper基于CP模式实现注册中心,基于ZAB协议(底层就是基于Paxos实现,核心底层基于2PC两阶段提交协议实现)实现保证每个节点数据同步的问题,中心化思想集群模式,分为领导和跟随者角色。

如何保持数据的一致性的问题

所有的写的请求统一交给我们的领导角色实现,领导角色写完数据之后,领导角色在将数据同步给每个节点。

注意:数据之间同步采用2pc两阶段提交协议。

选举过程:

  • 先去比较zxid zxid 谁最大谁就是为领导角色;
  • 如果zxid相等的情况下, myid谁最大谁就为领导角色;

在这里插入图片描述


Eureka

Eureka基于AP模式实现注册中心,去中心化的思想、每个节点都是对等的,采用你中有我,我中有你的形式实现注册中心。

在这里插入图片描述


Nacos

Nacos中集群注册中心采用AP,配置中心采用CP保证一致性,算法采用ratf协议模式,采用心跳机制实现选举的。

在这里插入图片描述

Logo

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

更多推荐