环境搭建
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