了解Gossip协议

时间:2016-09-10 16:03:17

标签: java scala akka distributed-system gossip

我正在阅读akka群集文档,现在我在Gossip部分。我不明白以下陈述:

  

使用Gossip协议传达群集成员资格,其中   群集的当前状态通过群集随机进行,   优先选择尚未看到最新版本的 成员

很难想象。我有以下问题:

问题:如果最新的更改仍然闲聊,节点如何知道哪些成员没有看到最新的更改。

我的意思是,如果某个节点收到通知如何决定将其发送到何处?显然,它不应该发送回来,因为发件人看到了最新的变化。但其他成员呢?他们中的一些人可能已经看过状态,没有任何其他方法可以解决问题,而不是查询所有这些成员。但是如果我们查询一个节点并且在查询过程中它会响应“否,我还没有看到它”,有人可能会将状态发送给它......

1 个答案:

答案 0 :(得分:1)

在下一段中,文章讨论了使用矢量时钟。它说

  

通过传递一组在八卦期间看到当前状态版本的节点来实现融合。

请注意,我之前从未在八卦协议中看到过这种情况,因为它通常会很快收敛。我会去寻找源代码,但我记得有些事情是当gossipers交换信息而不仅仅是推送信息时,大约有10个节点汇聚了大约10-15个步骤。