4

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

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

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

问题:如果最新的变化仍然是八卦,节点如何知道哪些成员没有看到最新的变化。

我的意思是,如果一个节点收到通知,它如何决定将它发送到哪里?显然,它不应该将其发回,因为发件人已经看到了最新的更改。但是其他成员呢?他们中的一些人可能已经看到了状态,除了查询所有这些成员之外,没有其他方法可以弄清楚。但是如果我们查询一个节点,它会在查询过程中回复“不,我还没有看到它”,有人可能会向它发送状态......

4

1 回答 1

1

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

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

请注意,我以前从未在 gossip 协议中看到过这种情况,因为它通常会很快自行收敛。我会去寻找源头,但我记得当八卦者交换信息而不是仅仅推送信息时,大约 1000 个节点会在大约 10-15 步内收敛。

于 2016-09-11T23:25:50.427 回答