【问题标题】:Nanomsg multicast bandwidth issueNanomsg 多播带宽问题
【发布时间】:2018-04-28 13:12:07
【问题描述】:
我可以在 nanomsg 的 pub/sub 协议中进行纯多播吗?
由于可以有 N 个订阅者对单个发布者的特定数据感兴趣,相同的订阅数据在 N 个不同的流中流动。如果我的单个流的带宽是 10MB,那么 N 个流所需的总带宽是 10*N,因此带宽增加了。我们可以像在多播中那样减少这个带宽吗?有人可以帮我解决这个问题吗?
【问题讨论】:
标签:
linux
scalability
publish-subscribe
multicast
nanomsg
【解决方案1】:
据我了解 PUB/SUB 模式,数据会一一发送给所有订阅者。如果订阅者还没有准备好接受它,则数据将被丢弃。我相信PUB/SUB中的数据是按顺序发送的。
但是,如果您使用 PUSH/PULL 模式,您可以更好地控制数据的发送方式。
您可以拥有 N 个 PULLers 和一个 PUSHer。 PUSHer 会将数据一一发送给所有的 PULLer。不同之处在于您可以控制时间并且可以等待较慢的 PULLers。
如果您不喜欢多次传输,我能想到的唯一其他机制是共享内存。一个发送者和多个接收者。不过,这种情况仅适用于单台计算机。
所以,答案是否定的。您不能在 nanomsg pub/sub 协议中进行纯多播。如果您需要纯多播,则必须查看其他协议。
也许传入的nng 可以通过 UDP 提供它。
如果多播是必须的,您必须检查其他协议,例如
NACK-Oriented Reliable Multicast (NORM).