一致性协议
一致性协议就是用来保证数据一致的。
强一致性
- Raft
最终一致性
- gossip
- distro
Distro 协议
Nacos 社区自研的一种 AP 分布式协议。 保证了部分节点宕机后,整个临时实例处理系统依旧可以正常工作。
主要涉及思想:
- Nacos 每个节点是平等的都可以处理写请求,同时把新数据同步到其他节点。
- 每个节点只负责部分数据,定时发送自己负责数据的校验值到其他节点来保持数据一致性。
- 每个节点独立处理读请求,及时从本地发出响应。
工作原理:
-
新加入的 Distro 节点会进行全量数据拉取.(通过轮询所有的 Distro 节点实现。)

-
在 Distro 集群启动之后,各台机器之间会定期发送心跳(携带机器上所有数据的元信息校验,)。如果某台机器发现其他机器上的数据与本地数据不一致,则会发起一次全量拉取请求,将数据补齐。

-
写请求的处理过程

- 前置 filter 拦截请求,根据请求计算(ip,port 信息)所属的 Distro 节点,并将请求转发到该节点。
- Distro 节点上的 Controller 将写请求进行解析
- Distro 协议定期执行 sync 任务,将本机所负责的所有实例信息同步到其他节点上。
-
读操作,直接从本节点上获取数据并返回
