nacos多个节点如何进行数据同步的

CP模式

现在我们的Nacos集群中存在三个节点,一个主节点,两个从节点,当主节点与一个从节点出现了分区后,如果我们的前提是需要保证整个系统的一致性,也就是需要保证Consistency这个状态存在

整个集群会发起主节点的重新选举,选举完成后同步所有的数据来保持数据的一致性,那么在选主的过程中,一定会导致一段时间的不可用,当然这个时间会极短,从而不能保证完全可用性

————————————————

AP模式

在AP模式下我们的集群没有主从的概念,所有的节点都是平等的,并且每个节点间的数据都互通

如果两个节点中间发生了分区情况,两个节点不再连通,但是我们的系统又必须保证整体的可用性,所以节点间会出现一段时间的数据不一致,直到分区恢复

raft算法 leader选举过程

所以Raft的核心流程可以归纳为:

首先选出 leader,leader 节点负责接收外部的数据更新/删除请求

然后日志复制到其他 follower节点,同时通过安全性的准则来保证整个日志复制的一致性

如果遇到 leader 故障,followers 会重新发起选举出新的 leader

————————————————

distro协议

前置filter拦截请求,根据请求中包含的IP和port信息计算所属的Distro的责任节点,请将请求转发到责任节点

2. 责任节点将写请求进行解析

3. Distro协议定期执行Sync任务,将所负责的所有实例信息同步到其他节点上

由于每台机器上的数据都存放了全量数据,因此每一次读操作,Distro机器会直接从本地拉取数据

Nacos支持CP+AP模式,即Nacos可以根据配置识别为CP模式或AP模式,默认是AP模式。如果注册Nacos的client节点注册时ephemeral=true,那么Nacos集群对这个client节点的效果就是AP,采用distro协议实现;而注册Nacos的client节点注册时ephemeral=false,那么Nacos集群对这个节点的效果就是CP的,采用raft协议实现。根据client注册时的属性,AP,CP同时混合存在,只是对不同的client节点效果不同。Nacos可以很好的解决不同场景的业务需求

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值