Gossip传播协议

作者: Oliver_Li | 来源:发表于2021-06-08 14:08 被阅读0次

    开篇:

    • gossip是传播协议,在很多地方都有用到,比如在Redis集群中用于节点间消息通知,上下线,角色修改等消息传播等。
    • gossip顾名思义类似于病毒传播的场景,一传十,十传百。

    流程:

    • gossip集群中每个节点都有其他n个或全部节点的通讯方式。
    • 开始时一个节点被感染,会从n个节点中选出规定节点数(比如10个)进行传播,传播后被感染一共11个节点再执行这个步骤,就会有新的110个节点被感染,以此类推,直到所有节点都被感染。
    • 当然在传播过程中会出现重复传播,不过经过一定次数传播后所有节点必定会都被传染,周期是O(logN) 。
    • 单个节点会多次传播,但不会重复传播,如果之前已经传染过邻居A,那下次就不会再传染了。

    其他:

    • 传播过程中,传播节点不会管消息是否被接收到。
    • raft:gossip和raft有一些共性,都可以解决分布式一致性的问题,但raft有Leader、强一致,gossip是对等模式没有Leader、最终一致,可能这个对比不太贴切,raft一般会和paxos等强一致性算法作对比。

    相关文章

      网友评论

        本文标题:Gossip传播协议

        本文链接:https://www.haomeiwen.com/subject/uwknfltx.html