springcloudalibaba

  1. 环境搭建
  2. Nacos
    1. 1. 服务注册与发现
    2. 2. 服务配置中心
  3. Raft 算法
    1. 1. Nacos 与 CAP
    2. 2. 角色与角色转变
    3. 3. leader 选举
    4. 4. 数据同步
    5. 5. 脑裂
    6. 6. Leader 冗机情况处理

环境搭建

Nacos

1. 服务注册与发现

2. 服务配置中心

Raft 算法

Nacos Discovery 集群为了保证集群中数据的一致性,其采用了 Raft 算法。这是一种通过 对日志进行管理来达到一致性的算法。Raft 通过选举 Leader 并由 Leader 节点负责管理日志 复制来实现各个节点间数据的一致性。

1. Nacos 与 CAP

2. 角色与角色转变

在 Raft 中,节点有三种角色:

  •  Leader:唯一负责处理客户端写请求的节点;也可以处理客户端读请求;同时负责日志

    复制工作

  •  Candidate:Leader 选举的候选人,其可能会成为 Leader

  •  Follower:可以处理客户端读请求;负责同步来自于 Leader 的日志;当接收到其它

    Cadidate 的投票请求后可以进行投票;当发现 Leader 挂了,其会转变为 Candidate 发起 Leader 选举

3. leader 选举

4. 数据同步

5. 脑裂

Raft 集群存在脑裂问题。在多机房部署中,由于网络连接问题,很容易形成多个分区。 而多分区的形成,很容易产生脑裂,从而导致数据不一致。

6. Leader 冗机情况处理


转载请注明来源,欢迎对文章中的引用来源进行考证,欢迎指出任何有错误或不够清晰的表达。可以在下面评论区评论,也可以邮件至 337950548@qq.com

💰

×

Help us with donation