问题描述
我有成百上千个节点,每个节点彼此都知道对方的地址。
为了有效地在它们之间传播消息,我目前正在考虑将它们变成一棵树,或者可能是多棵树。
我已经读过https://en.wikipedia.org/wiki/Broadcast_(parallel_pattern),但似乎无法处理消息丢失的情况。
如果消息有1%的失败机会,是否可以将其传递到99%的节点?速度在这里很重要,因此重试和/或TCP无效。
当消息失败时,简单的树广播将丢失整个分支。也许多棵树可以解决问题?多少?
我很高兴节点收到少量冗余消息。我需要使用UDP。少量的绝对故障是可以的,因为它们可以在以后的时间赶上自己,同时又从网络上断开。
这是一个解决的问题吗?
(我遇到过https://ieeexplore.ieee.org/abstract/document/508133,但在知道它是否合适之前无法负担费用。)
解决方法
这是gossip之类的分布式系统中一些有趣的方法,可以解决您的问题。