0

我可以在 nanomsg 的 pub/sub 协议中进行纯多播吗?由于可以有 N 个订阅者对单个发布者的特定数据感兴趣,相同的订阅数据在 N 个不同的流中流动。如果我的单个流的带宽是 10MB,那么 N 个流所需的总带宽是 10*N,因此带宽增加了。我们可以像在多播中那样减少这个带宽吗?有人可以帮我解决这个问题吗?

4

1 回答 1

0

据我了解PUB/SUB模式,数据会一一发送给所有订阅者。如果订阅者还没有准备好接受它,则数据将被丢弃。我相信PUB/SUB中的数据是按顺序发送的。

但是,如果您使用 PUSH/PULL 模式,您可以更好地控制数据的发送方式。您可以拥有 N 个 PULLers 和一个 PUSHer。PUSHer 会将数据一一发送给所有的 PULLer。不同之处在于您可以控制时间并且可以等待较慢的 PULLers。

如果您不喜欢多次传输,我能想到的唯一其他机制是共享内存。一个发送者和多个接收者。但是,这种情况仅适用于单台计算机。

所以,答案是否定的。你不能在 nanomsg pub/sub 协议中进行纯多播。如果您需要纯多播,则必须查看其他协议。也许传入的nng可以通过 UDP 提供它。

如果必须使用多播,则必须检查其他协议,例如 NACK-Oriented Reliable Multicast (NORM)

于 2017-11-16T14:55:04.733 回答