Q1: 与使用 ZeroMQ 向子进程发送消息相比,与 here 解释的默认进程间通信之间的区别究竟是什么?

Q2:对于直接进程与子通信, 哪个 更合适? (快点)

Q3:文档说: Creates an IPC channel , 它使用什么 类型的 IPCTCP? socket ?

最佳答案

最重要的一点是要说明-ZeroMQ,无需经纪人的

A1:使用ZeroMQ发送消息和IPC的区别

好吧,这样说来,ZeroMQ 专注于很多不同的好处 ,而不仅仅是发送消息和放大的能力(这两者都有帮助)。
ZeroMQ 引入了(可扩展的)正式通信模式

这就是说,核心应用程序端的重点是可以使用 ZeroMQ 库模式原语来直接实现参与代理之间实际需要的行为模型(一个 PUB + many SUB -s/many PUB o -s + 许多交叉连接 SUB -s ) 或

如何组合更复杂的、特定于应用程序的信号平面(使用可用的 ZeroMQ 构建块行为原始套接字原型(prototype) + 设备 + 应用程序逻辑,为信号平面添加的功能提供有限状态机或事务引擎)。

标准 IPC 提供基于 O/S 的哑服务,无行为

如果是在纯O/S上下文中理解的话,那就很好了(即“
附带的电池”是而不是)。

但是,任何更高级别的消息支持和其他重要功能
(类似公平队列、循环调度、在任何/所有 { inproc:// | ipc:// | tcp:// | pqm:// | ... } 传输类上的多路传输不可知服务组合、毫秒调整的多 channel 轮询器、零拷贝消息切换和许多其他智能功能)自己设计/实现(正是这种情况,为什么将 ZeroMQ 放入游戏中,不是必须这样做,不是吗? 非常感谢,Martin SUSTRIK 和 Pieter HINTJENS 的团队 )

最好的下一步是什么?

To see a bigger picture on this subject >>> 更多参数 ,一个简单的 信号平面图片 和一个 直接链接到 Pieter HINTJENS 的必读书籍。

A2:更快?如果有人给出一个简单的答案,我会担心。这取决于……很多……

如果对ZeroMQ的妹妹 nanomsg 感兴趣,甚至可以查看Martin SUSTRIK nanomsg.org >>> 的更轻量级的框架。

快、快、快...

获得最小开销的灵感(读作速度的高潜力)
零拷贝(读作有效的开销避免)阅读关于 inproc:// 用于线程间消息传递的传输类:

  • zeromsg/inproc
  • nanomsg/inproc


  • A3:它使用 IPC
    IPC 本身就是一个传输类。无需重新包装/对齐/组装/CRC/封装/分发|解码\CRC重新检查\解映射...如果将原始IPC -data转换为更高抽象的TCP -packets,则可以在localhost进程之间通过IPC -channel,是吗?

    关于node.js - ZeroMQ 和 IPC 的区别,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/32681838/

    10-12 03:22