Gossip协议 流行病协议,流言协议
分布式网络,无集中管理节点;节点间点对点传播信息。
P2P,BITCOIN,REDIS CLUSTER 等等
简单:
扩展性:网络节点可任意增加或修改
容错性:无中心节点,任意节点宕机不影响协议运行
去中心化:任意节点都能发送消息
最终一致性问题:
需要花费一定时间达到最终一致性
消息冗余
不适合大规模集群
恶意节点传播垃圾信息
direct mail :通知所有邻居更新信息,邻居节点收到消息后不会转发
简单
难以达到最终一致性、容错性低、种子节点压力大。
社交网络
anti entropy:集群中的节点每隔一段时间随机选择一个节点互相交换所有数据,然后进行数据同步,消除数据不一致。
最终一致性
信息同步成本高、达到最终一致耗时长。
存储系统多副本一致
rumor mongering:收到更新消息后,成为受感染节点,周期性的传播更新消息,如果发现其他节点已经知道了消息则按照一定概率将自己变为removed,不再传播消息。
最终一致性,传播信息少,达到最终一致性耗时少。
一定概率可能不一致,节点数量不能太多
节点经常变化的集群
bully算法: 当一个进程发现协调者(或leader)不再响应请求时,就判定其出现故障,于是他发起选举,选出新的协调者。(当前活动进程中进程号最大/小的)
关键假设:
系统是同步的
进程在任何时候都可能失败,包括算法执行过程中
进程失败后停止工作,重启后重新工作
有失败监控者,可以发现失败进程
进程之间传播消息是可靠的
每一个进程知道自己和其他每一个进程的ID及地址
raft算法:
容易理解;算法明确划分为选举、复制、安全三个子问题
State machine replication:复制状态机,复制的是命令而不是数据,典型代表:Raft。 Primary-backup system:主备复制,复制的是命令执行后的数据,典型代表:ZooKeeper 的 ZAB 每一个节点都有一个状态机和一致性模块,由一致性模块保证分布式一致性,节点之间复制的是client发送的命令,无论读写请求都要进行一致性处理,因此可以容忍非拜占庭故障。
标签:进程,算法,复制,集群,一致性,解析,节点 From: https://www.cnblogs.com/windghost/p/16994783.html