问题描述
我们正在开发像chrome ipc这样的多进程程序。
父子进程之间的通信将使用ZeroMQ。父母将向特定的孩子发送特定的消息。而且孩子还将以每秒50次的较高频率向父级发送消息。
我找到了instruction of ZeroMQ。如建议的那样,当前计划是作为单独的IO线程的父级中的router
套接字,以及每个子进程中的dealer
套接字。
这是一个好的设计吗?
解决方法
Q :“这是一个好的设计吗?”
地狱取决于...
由于系统设计是建立在ZeroMQ消息传递/信令平面层之上的,因此我的大多数distributed-computing实现中都有许多ZeroMQ形式化通信原型模式可以立即合作。没有单一的原型模式就足够了。这既是理所当然的也是自然的-Zen-of-Zero是围绕性能构建的,因此没有一个原型原型设计具有比真正需要更多的单个功能,并且其余所有(上述)都可以通过应用程序级的可组合性实现。这些工具箱原语。
Zen-of-Zero倾向于将精力集中在低延迟,几乎线性的可伸缩性上,并尽可能提高性能。
如果有任何这样的原型,可以与“一刀切”的全能奉献相匹配,则不可避免的会增加延迟,性能下降的罚款带来的额外成本,但会对所有此类用例产生负面影响,除了构建工具箱原语所需要的非常少的设计属性之外,不需要任何其他操作,而仍然可以根据需要实现任何更复杂的需求。