因此,正如我在上一篇文章中所问的那样,我希望能够使用不同语言编写的程序或函数在它们之间进行通信。
我最近遇到了 Zeromq,我试图弄清楚这是否可以帮助我,因为它提供了某种套接字。例如,zeromq 可以在用 python 编写的程序与用 C++ 编写的程序或函数之间交换数据(或传递参数)吗?或者它的功能是否完全不同?
A:哦,是的,这就是力量ZeroMQ
or nanomsg
构架
这两个都是not sockets反而行为在一个上下文中创建Zero-*——一组勇敢的格言S可扩展的Formal C沟通Pattern F框架的设计、开发和微调以满足。
这将使您能够组装自己的快速且智能的消息传递层。
问:下一步最好的步骤是什么?
不管您的第一印象如何,您都会忘记有关套接字和多线程同步技巧的任何知识。
是的,宁愿忘记并在“绿色领域”上建立新的理解。
以 Pieter HINTJENS 为例book“Code Connected,卷 1”(可在PDF)并花了几周的时间来理解 Pieter 为这本 ZeroMQ 必读圣经所写的动机和典型错误。
代码片段是危险的如果您没有收到或完全错过了全上下文 of the 更大的图景。
相信我。我无法给你更好的建议。您可以查看我关于 ZeroMQ 和 nanomsg 的其他帖子,看看其中的区别。
您一定会从这本书中受益,ZeroMQ 将赋予您许多您永远不会(相信我永远不会)准备好自己从头开始编程的能力。力量是如此巨大(如果好好利用的话).
nota bene
对于现实世界的进程间通信,有一个小问题需要注意。各种 ZeroMQ 版本的互操作性。是的,ZeroMQ 的力量是巨大的,但是,有必要在消息传递层中保留内置的版本控制,以便解决某些平台没有可用的“较新”版本的更新路径的情况。通过将交易系统与组件重新集成来解决这个问题,该组件的历史可以追溯到zmq.__version__ == 2.1.11
是必要的,而最近的版本远高于14.x.y
,从而保证100%端到端向后兼容。
尽管如此,整体潜力仍然巨大,坚持下去并完成工作是有意义的。总帐对此。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)