使用ZeroMQ实现多进程程序时应使用哪种模式?

问题描述

我们正在开发像chrome ipc这样的多进程程序。

父子进程之间的通信将使用ZeroMQ。父母将向特定的孩子发送特定的消息。而且孩子还将以每秒50次的较高频率向父级发送消息。

我找到了instruction of ZeroMQ。如建议的那样,当前计划是作为单独的IO线程的父级中的router套接字,以及每个子进程中的dealer套接字。

这是一个好的设计吗?

解决方法

Q “这是一个好的设计吗?”

地狱取决于...

由于系统设计是建立在ZeroMQ消息传递/信令平面层之上的,因此我的大多数实现中都有许多ZeroMQ形式化通信原型模式可以立即合作。没有单一的原型模式就足够了。这既是理所当然的也是自然的-Zen-of-Zero是围绕性能构建的,因此没有一个原型原型设计具有比真正需要更多的单个功能,并且其余所有(上述)都可以通过应用程序级的可组合性实现。这些工具箱原语。

Zen-of-Zero倾向于将精力集中在低延迟,几乎线性的可伸缩性上,并尽可能提高性能。

如果有任何这样的原型,可以与“一刀切”的全能奉献相匹配,则不可避免的会增加延迟,性能下降的罚款带来的额外成本,但会对所有此类用例产生负面影响,除了构建工具箱原语所需要的非常少的设计属性之外,不需要任何其他操作,而仍然可以根据需要实现任何更复杂的需求。