跳到主要内容

一致性协议

一致性协议就是用来保证数据一致的。

强一致性

  • Raft

最终一致性

  • gossip
  • distro

Distro 协议

Nacos 社区自研的一种 AP 分布式协议。 保证了部分节点宕机后,整个临时实例处理系统依旧可以正常工作。

主要涉及思想:

  • Nacos 每个节点是平等的都可以处理写请求,同时把新数据同步到其他节点。
  • 每个节点只负责部分数据,定时发送自己负责数据的校验值到其他节点来保持数据一致性。
  • 每个节点独立处理读请求,及时从本地发出响应。

工作原理:

  1. 新加入的 Distro 节点会进行全量数据拉取.(通过轮询所有的 Distro 节点实现。)

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

  3. 写请求的处理过程

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