我正在研究使用ZeroMQ作为相当大的分布式系统的消息传递/传输层,主要针对监控和数据收集(许多生产者,少数消费者)。
据我所知,目前有两种不同的同一概念实现; ZeroMQ和Crossroads I / O,后者是ZeroMQ的分支(2012年?)。
我正在试图找出使用哪一个并想知道它们之间的差异,但到目前为止还没有找到关于此的更多信息。
例如:
基本上,如何选择其中一个?
答案 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的堆栈最终会说出相同的协议。