2012-11-21 67 views
46

我正在研究將ZeroMQ用作相當大型分佈式系統的消息/傳輸層,主要針對監視和數據收集(許多生產者,少數消費者)。ZeroMQ vs Crossroads I/O

據我所見,目前有兩種不同的相同概念的實現; ZeroMQ和Crossroads I/O,後者是ZeroMQ的分支(2012年?)。

我想弄清楚哪一個使用和想知道它們之間的差異,但迄今沒有找到關於此的很多信息。

例如:

  • 他們是在電線上兼容嗎?
  • 它們是否與API兼容,即某種常見的基礎API,可能具有不同的附加組件?
  • 它們是否都實現了對ZMTP(ZeroMQ消息傳輸協議)的支持?
  • 他們對未來發展有共識嗎?或者他們會繼續在兩個不同的方向發展?
  • 與其他方面相比有什麼優點/缺點?

基本上,如何選擇一個在另一個之上?

回答

76

Crossroads.io是好看死了,因爲馬丁Sustrik已經開始了一個新的堆棧,在C,稱爲納米:https://github.com/250bpm/nanomsg

Crossroads.io沒有,據我所知,實施ZMTP/1.0,也不ZMTP/2.0,但其自己的協議版本。

Nano有可插拔的傳輸,我們可能會爲此做一個ZMTP傳輸。納米非常好,對原始libzmq庫的重新思考,如果成功將會構成一個好的新內核。

理想情況下,Nano可以在API和協議級別互操作,因此可以替代libzmq。儘管如此,它還有很長的路要走。

請注意,現在有幾個新的libzmq重寫,包括JeroMQ(Java)和NetMQ(C#)。這兩個可以正確執行ZMTP/1.0和ZMTP/2.0。還有其他一些圖書館,如Axon(https://github.com/visionmedia/axon),它們深受0MQ的啓發,但不兼容。

根據經驗,用戶比其他任何東西都更重視互操作性,所以很可能不同的類似0MQ的堆棧最終會講同樣的協議。

+2

謝謝,看起來像ZeroMQ是現在的發展方向。很高興知道其他兼容實現正在出現 - 這看起來對未來非常有前途! –

+3

是的,我認爲關鍵在於很多替代方案都會使用相同的協議並提供類似的API和消息傳遞模式。 –

+2

用戶更看重互操作性,當然,穩定性,可靠性和長期支持更是如此。如果我們看看AMQP-> ZeroMQ-> Crossroads.IO-> Nano,我不會打賭nano是最後一個穩定版本。 – MSalters