5

我很感興趣:如何Corosync,ZeroMQ的CPG和傳播比較的消息?

  • 性能
    • 延遲
    • 吞吐量
    • 資源使用(CPU,內存,...)
  • 高可用性
    • 沒有一個單一的POI故障
  • 新臺幣特點
    • 運輸選項
    • 路由選項
  • 穩定性
  • 社區
    • 積極發展
    • 廣泛使用
    • 有用的郵件列表,論壇,IRC頻道,...
  • 易於集成與我目前的代碼庫
  • 陷阱也許
  • 你認爲我省略

任何其他東西我已經閱讀過關於它們的內容,但我找不到比較。特別是我對比較它們的性能基準感興趣。 (也許我應該做一個對我自己!我希望不會。)

回答

6

嗯,我沒有使用其他兩個,但可以用ZeroMQ分享我的經驗。在我看來,它在所有的人都很出色。

速度和處理能力

它一樣快,TCP,不使用CPU或大量內存。它可以迅速推送很多信息而不會出汗。你耗盡內存前,將飽和的網絡信道的方式(我懷疑你將永遠能夠最大時的CPU)。有是RabbitMQ地方比較和ZMQ從事情我已經是在高速交易使用的網絡上讀取的2倍優於它。

的RabbitMQ也是一個很好的工具。看看它 - 這可能是很好的適合你在找什麼

SPOF

如果你正確地設計你的應用程序,那麼你可以有不存在單一故障點。將兩個插座連接到另一個插座非常容易。所以如果其中一個失敗 - 另一個是在那裏處理工作。有很多事情像高水印一樣幫助你。閱讀ZeroMQ Guide,瞭解如何在沒有SPOF的情況下設計您的應用。

傳輸和路由

關於交通方式(如果我正確理解這一點) - 它是由您定義的協議。 ZeroMQ基本上向你承諾,它將把這個數據塊傳送到另一端。使用JSON,協議緩衝區,莫爾斯碼,無論你喜歡什麼。

AMQP中沒有像內置路由一樣的內置路由。再次,它由您來指定哪個ZeroMQ套接字連接到哪個套接字,但這非常容易。

穩定性

我一直在用它開發了數個月(使用Python),並沒有發現其穩定性單一的問題。即使我嘗試以錯誤的方式使用它,它也會拋出一個很好的錯誤,告訴我不要這樣做。即使重新啓動/殺死一些服務並將其恢復也不會導致任何問題。我會說它是一個非常穩定的軟件。

作爲一個說明:總是使用最新版本 - 2.1版本非常穩定導向,所以很多穩定性問題都解決了它在

社區

綁定超過20種語言,活躍的郵件列表,很好的文檔,頻繁的發佈。還要別的嗎?

集成

因爲它的設計爲一個庫是由你來設計你的應用程序(不像一個框架的情況下),它幾乎代表了你的方式。這感覺有點像一個普通的TCP套接字,功能更強大,更易於使用(它保證你將一個消息作爲一個整體來傳遞,不僅是前128個字節,其餘的就像普通套接字一樣)。

gotchas

有一些,但他們都在指南中記錄。 (例如:當您連接(SUB)時,您可能會錯過PUB套接字的前幾條消息,本指南和配方中有解釋如何處理它)。

總體

我覺得這是一個最好的設計軟件件 - 穩定的,寫得不錯,有據可查的,在我的方式並不突出。

我建議您閱讀the guide端到端。它寫得很好,很多語言(包括C++)的例子,它描述了很多邊緣案例和痛點。

+0

通過傳輸選項我的意思是低層協議選項,如TCP,UDP等。 並感謝您的徹底回答:) – Ebrahim 2011-08-27 08:55:04