【问题标题】:ZeroMQ vs Crossroads I/OZeroMQ 与 Crossroads I/O
【发布时间】:2012-11-09 17:59:36
【问题描述】:

我正在研究使用 ZeroMQ 作为相当大的分布式系统的消息传递/传输层,主要针对监控和数据收集(许多生产者,一些消费者)。

据我所知,目前同一概念有两种不同的实现方式; ZeroMQ 和 Crossroads I/O,后者是 ZeroMQ 的一个分支(2012 年?)。

我正在尝试找出使用哪一个并想知道它们之间的区别,但到目前为止还没有找到太多关于此的信息。

例如:

  • 它们在电线上是否兼容?
  • 它们是否与 API 兼容,即某种通用基础 API,可能带有不同的附加组件?
  • 它们是否都实现了对 ZMTP(ZeroMQ 消息传输协议)的支持?
  • 他们是否对未来的发展有某种共同的理解,还是会继续朝着两个不同的、可能不同的方向发展?
  • 相对于其他的优点/缺点是什么?

基本上,如何选择一个而不是另一个?

【问题讨论】:

    标签: zeromq crossroads-io


    【解决方案1】:

    Crossroads.io 已经死了,因为 Martin Sustrik 已经开始使用 C 语言的新堆栈,称为 nano:https://github.com/250bpm/nanomsg

    Afaik,Crossroads.io 没有实现 ZMTP/1.0 或 ZMTP/2.0,而是它自己的协议版本。

    Nano 具有可插拔传输,我们可能会为此制作 ZMTP 传输。 Nano 真的很不错,是对原始 libzmq 库的重新思考,如果成功的话,将会制作出一个不错的新内核。

    理想情况下,Nano 可以在 API 和协议级别进行互操作,因此可以作为 libzmq 的可插拔替代品。不过,它确实还有很长的路要走。

    请注意,现在出现了几个对 libzmq 的重写,包括 JeroMQ (Java) 和 NetMQ (C#)。这两个确实正确地实现了 ZMTP/1.0 和 ZMTP/2.0。还有其他库,例如 Axon (https://github.com/visionmedia/axon),它们深受 0MQ 的启发,但不兼容。

    根据经验,用户最看重互操作性,因此很可能不同的类似 0MQ 的堆栈最终会使用相同的协议。

    【讨论】:

    • 谢谢,ZeroMQ 似乎是目前的前进方向。很高兴知道其他兼容的实现正在弹出 - 这看起来对未来很有希望!
    • 是的,我认为关键是有很多替代方案使用相同的协议并提供相似的 API 和消息传递模式。
    • 用户看重互操作性,当然,但稳定性、可靠性和长期支持更是如此。如果我们查看 AMQP->ZeroMQ->Crossroads.IO->Nano,我不会打赌 nano 是最后一个稳定的版本。
    猜你喜欢
    • 2015-05-24
    • 1970-01-01
    • 2012-01-20
    • 2012-08-19
    • 2011-05-02
    • 1970-01-01
    • 2016-09-16
    • 2013-01-04
    • 1970-01-01
    相关资源
    最近更新 更多