首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >可靠的网络全方位通信:消息总线或发布/订阅或多播/PGM?

可靠的网络全方位通信:消息总线或发布/订阅或多播/PGM?
EN

Stack Overflow用户
提问于 2014-03-29 08:31:11
回答 1查看 2.1K关注 0票数 2

我有一个粒子模拟程序,想把它分割到局域网中的多台机器上。每个服务器节点计算多个粒子的位置,并需要将更新的位置(即相同的数据)发送到所有其他服务器节点。因此,每个服务器节点都需要连接到所有其他服务器节点。

这种可靠的全方位通信应该在没有中央服务器/消息代理的情况下工作,并且应该没有延迟。如果可能的话,也应该避免通过网络多次发送相同的数据(就像多播一样)。

我环顾四周,ZeroMQ (支持总线、Pub/Sub和PGM)以及纳氏 (支持总线和Pub/Sub,但没有PGM)看起来像适合这个问题的伟大库。

在这种情况下,哪种网络技术最适合,消息总线、发布/订阅或多播/PGM?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-03-29 16:00:01

Pub / Sub被实现为多播,使用PGM作为传输方法对ZeroMQ客户端是透明的。ZeroMQ努力向客户端隐藏实现细节,这也是为什么它工作得如此好的原因之一。但是,不要让简单性欺骗了您,ZeroMQ是一个非常强大和灵活的专业设计消息传递解决方案。它速度快,效率高,可以轻松地处理大量的信息。

ZeroMQ在一些令人印象深刻的大型部署中使用,在我的工作场所,我们使用ZeroMQ每秒处理200 K以上的消息。我们发现ZeroMQ可以毫不费力地进行扩展,库经过了很好的设计和优化(没有内存泄漏,性能也很好),并且已经证明不管我们对它做了什么,它都能很好地工作。

在ZeroMQ中,发布/订阅是针对用户定义的主题进行的,这些主题决定向哪些连接的客户端发送哪些数据。因此,如果我有10个客户机连接到我的发布套接字,9个订阅了一个名为"A“的主题,而一个客户端订阅了一个主题"B",并且我发送了一条主题为"B”的消息,那么只有订阅主题“B”的客户端才会被发送消息。ZeroMQ在传输点(避免浪费带宽)和接收点(在主题未订阅时避免可能的竞争条件)对pub/sub消息执行过滤。还可以订阅多个主题。

为了实现您描述的mesh消息传递系统,我建议在集群中的每个节点上创建两个套接字,一个用于接收来自所有其他节点的消息,另一个用于向所有其他节点发送消息。如果不需要主题,那么对"*“主题的订阅将允许该客户端接收所有消息。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/22728819

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档