Q1: 与使用 ZeroMQ
向子进程发送消息相比,与 here 解释的默认进程间通信之间的区别究竟是什么?
Q2:对于直接进程与子通信, 哪个 更合适? (快点)
Q3:文档说: Creates an IPC channel
, 它使用什么 类型的 IPC
? TCP
? 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/