ZeroMQ与十字路口I / O

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

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

我试图找出哪一个使用,并想知道他们之间的差异,但至今没有find关于这方面的许多信息。

例如:

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

基本上,如何select一个呢?

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

Crossroads.io并没有执行ZMTP / 1.0,也没有实现ZMTP / 2.0协议。

纳米有可插拔的运输,我们可能会为此做一个ZMTP运输。 纳米真的很不错,对原始libzmq库的重新思考,如果成功就会成为一个好的新内核。

理想情况下,Nano可以在API和协议级别进行互操作,因此可以替代libzmq。 尽pipe如此,还有相当长的一段路要走。

请注意,现在有几个新的libzmq重写,包括JeroMQ(Java)和NetMQ(C#)。 这两个都正确地实现了ZMTP / 1.0和ZMTP / 2.0。 还有其他一些像Axon(https://github.com/visionmedia/axon)这样的库,这些库很受0MQ的启发,但不兼容。;

根据经验,用户比其他任何东西都更重视互操作性,所以很可能不同的类似0MQ的堆栈最终会讲同样的协议。