【问题标题】:Understanding ZeroMQ了解 ZeroMQ
【发布时间】:2015-08-16 07:49:17
【问题描述】:

正如我在之前的帖子中所问的,我希望能够制作用不同语言编写的程序或函数来在它们之间进行通信。

我最近遇到了 zeromq,我试图弄清楚这是否可以帮助我,因为它提供了某种套接字。例如,zeromq 可以在用 python 编写的程序与用 C++ 编写的程序或函数之间交换数据(或传递参数),还是它的函数完全不同?

【问题讨论】:

    标签: zeromq


    【解决方案1】:

    A:哦,是的,这正是 ZeroMQnanomsg 框架的力量

    这两者都不是sockets,而是在Zero-*的上下文中创建的BEHAVIOUR - - 一组勇敢的格言S可扩展F正规C沟通Pattern F设计、开发和微调框架以满足需求。

    这将使您能够组装自己的快速智能消息传递层。

    问:最好的下一步是什么?

    不管您的第一印象如何,您几乎都忘记了您对套接字和多线程同步技巧的了解。

    是的,宁愿忘记并建立你对“绿色领域”的新理解。

    阅读 Pieter HINTJENS 的“Code Connected,第 1 卷”(可在 PDF 中访问)并花几周时间了解 Pieter 的动机和典型错误深入了解 ZeroMQ 的这本必读圣经。

    Code-sn-ps 是危险的,如果您没有获得或完全错过大图的完整上下文

    相信我。我不能给你更好的建议。你可以查看我在 ZeroMQ 和 nanomsg 上的其他帖子,看看有什么不同。

    你一定会从这本书中受益,ZeroMQ 会给你很多你永远不会(相信我永远不会)准备好自己从头开始编程的能力。 威力如此巨大(如果再利用得当的话)


    nota bene

    对于现实世界的进程间通信,需要注意一个小问题。各种 ZeroMQ 版本的互操作性。是的,ZeroMQ 的力量是巨大的,但是,有必要保持在消息传递层中内置的版本控制,以解决某些平台没有可用的“更新”版本的更新路径的情况。通过将交易系统与组件重新集成来解决此问题,其中旧版本 zmq.__version__ == 2.1.11 是必要的,而最近的版本远高于 14.x.y,以确保 100% 端到端向后兼容。

    不过,整体潜力如此巨大,坚持不懈并完成工作是有意义的。总帐。

    【讨论】:

    • libzmq 开发主干版本为4.2。我们不在14.x.y 附近——但是:)
    • 非常感谢您的回答,非常有帮助和赞赏!我对套接字了解不多,所以“忘记你对套接字的任何了解”并不难。我只是想找到一种让不同程序进行通信的方法,我遇到了这个问题。老实说,我不知道 nanomg 是什么,但我也会对此进行研究,并且我已经开始阅读 Code Connected 书。再次非常感谢:)
    • 从头到尾享受这本书。确实是彼得的人生旅程故事的精彩片段…… G/L Jethro 在前进的道路上。值得遵循最先进的做法并避免 Pieter 真正包含的错误,以便识别它们并避免重复它们(如果可能的话):o)
    • @Xaqq 仅供参考:print zmq.__version__ >>> 14.6.0
    • 嗯,我不知道这个zmq.__version__ 是什么,但它肯定不是libzmq 版本。
    【解决方案2】:

    ZeroMQ 是套接字的抽象。它是跨平台的并且有很多语言绑定:我个人不知道任何没有 ZeroMQ 绑定的语言。

    是的,您可以使用 ZeroMQ 在 Python 编写的程序和 C++ 编写的程序之间进行通信。

    我建议查看zguide,因为它包含很多关于 ZeroMQ 的非常有用的信息。

    PyZMQ 可用作 Python 绑定,zmqpp 可用于您的 C++ 代码。请注意,对于 C++ 代码,您也可以直接使用 cppzmq 或 zmq C API。我建议使用 zmqpp 作为更高级别并且(恕我直言)更易于使用。

    【讨论】:

      猜你喜欢
      • 2019-08-29
      • 1970-01-01
      • 2014-02-16
      • 1970-01-01
      • 2017-09-29
      • 2016-11-11
      • 2012-04-25
      • 1970-01-01
      • 2014-10-01
      相关资源
      最近更新 更多