ZeroMQ/NanoMsg 发布/订阅与多播

Posted

技术标签:

【中文标题】ZeroMQ/NanoMsg 发布/订阅与多播【英文标题】:ZeroMQ/NanoMsg pub/sub vs multicast 【发布时间】:2018-04-06 20:13:46 【问题描述】:

我想使用 zeromq 或 nanomsg 或 aeron.net 或 OpenDDS 或 OpenMAMA 实现数据分发应用程序,我有点困惑,因为我的要求是支持 500 到 1000 个用户,每个用户至少可以订阅 100 个主题

这可以通过使用 pub/sub 模式来处理,或者我必须使用 UDP 多播?

我还需要在 Amazon EC2 上部署这个应用程序

【问题讨论】:

【参考方案1】:

你把苹果和橙子混在一起:

“可以(this)使用pub/sub模式处理(do) 我必须使用 UDP 多播?”

PUB/SUB 可扩展的正式通信模式告诉代理之间的行为方式。

然而,UDP 多播告诉可以首选使用哪种技术传输类,即 pgm:// | epgm:// 与所有技术上可用的传输类中的任何一个 inproc:// | ipc:// | tcp:// | pgm:// | epgm:// | vmci://

最后,PUB/SUB 可以在 pgm:// | epgm:// 上工作,因此“”选择构造函数基本上是不够的。 p>


返回缩放:

ZeroMQ 和 nanomsg(截至 2018 年第一季度可用的实现)都不会在超过 1000 个用户 x 100 多个主题的 PUB/SUB 机制上出现问题。

有关详细信息,您可以阅读精彩的 Martin Sustrik 的技术详细信息,主题过滤器如何以及为何在这些平台中的任何一个中工作。他是这两种信号/消息系统之父,在​​这个主题及其局限性方面,几乎找不到比他更好或更有洞察力的人了。

在表达了您之前对金融科技/FIX-协议/交易平台的了解之后,您应该有足够的经验来进一步决定主要问题。


我还需要在 Amazon EC2 上部署这个应用程序:

简单。去完成它。如果出现问题,请重新阅读平台文档并先询问服务提供商。

【讨论】:

感谢您的回答。抱歉无法详细说明我的问题。实际上我想知道 zeormq 或 nanomsg 提供的 pub/sub 套接字可以使用 tcp 协议处理这个负载,或者我必须使用 pgm/epgm。在使用 pgm/epgm 时,我看到了网络管理的困难

以上是关于ZeroMQ/NanoMsg 发布/订阅与多播的主要内容,如果未能解决你的问题,请参考以下文章

Apache camel 错误处理如何与多播和事务一起使用

34.条件变量与多线程(单播与多播)

简单委托(委托)与多播委托

广播与多播

长寿命的多播 Observable,每次订阅时都会重新订阅其源

多播和广播推送通知