Q1:什么使用 ZeroMQ
向子进程发送消息与默认的进程间通信相比有什么区别?解释 here ?
Q2:对于与 child 沟通的直接过程,哪个会更合适? (更快)
Q3:文档说:Creates an IPC channel
,它使用什么类型的IPC
? TCP
?套接字?
最佳答案
在最开始的时候就说明一个很好的观点 - ZeroMQ
无经纪人
A1:使用ZeroMQ
的区别发送消息 & IPC
嗯,这样说,ZeroMQ
专注于许多不同的好处,而不仅仅是发送消息和扩大规模的能力(两者都很有帮助)。
ZeroMQ
引入( well Scaleable ) 正式沟通模式
这就是说,应用程序端的核心焦点是可以使用哪些 ZeroMQ 库模式原语来直接实现参与代理之间实际需要的行为模型(一个 PUB
+ 许多 SUB
-s/many PUB
-s + many cross-connected SUB
-s )
或
如何编写更复杂的、特定于应用程序的信号平面(使用可用的 ZeroMQ
构建 block 行为原始套接字原型(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://
用于线程间消息传递的传输类:
A3:它使用IPC
.
IPC
本身就是一个运输类。无需重新包装/对齐/组装/CRC/封装/分发|解码\CRC-recheck\demap...原始IPC
-数据进入更高的抽象TCP
-如果在 localhost
之间传输的数据包处理 IPC
- channel ,是吗?
关于node.js - ZeroMQ 和 IPC 的区别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32681838/