ZeroMQ vs Crossroads I / O.

时间:2012-11-21 13:10:48

标签: zeromq crossroads-io

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

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

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

例如:

  • 它们是否与电线兼容?
  • 它们是API兼容的,即某种常见的基本API,可能有不同的附加组件吗?
  • 他们是否都实现了对ZMTP(ZeroMQ消息传输协议)的支持?
  • 他们是否对未来的发展有某种共同的理解,还是会在两个不同的方向上继续发展?
  • 与另一方有关的利弊是什么?

基本上,如何选择其中一个?

1 个答案:

答案 0 :(得分:78)

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

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的堆栈最终会说出相同的协议。