2010-07-19 63 views
38

怎樣的RabbitMQ比較騾子,我會使用面向消息的架構和AMQP(RabbitMQ的)提供了我想要的一切來構建應用程序,但我困惑有這麼多相關的技術選擇和類似的概念像ESB一樣。我懷疑我是否在不考慮其他選擇的情況下作出選擇。如何RabbitMQ的比較騾子

我大多清楚RabbitMQ是一個消息代理,它可以幫助我調解生產者和消費者之間的消息(所有表單或發佈訂閱,我可以理解它是如何使用像twitter或Facebook更新等實際的例子)

什麼是騾子,如果我能做到什麼,我在RabbitMQ的使用騾,我應該考慮騾子類似的RabbitMQ?

騾子是否具有比消息代理的不同目標?

是否騾子假設底層它有一個信息中介,提供信息,以適當的騾子聽衆(我可以很容易地寫在RabbitMQ的監聽器)

是騾子完整的Java庫系統(目前的實驗,我沒有與RabbitMQ花了我不到30分鐘寫一個簡單的RPC客戶端服務器與客戶端爲C#和服務器爲Java,這樣的事情會在騾子輕鬆完成)。

回答

64

騾是ESB(企業服務總線)。 RabbitMQ是一個消息代理。

一個ESB在消息代理的頂層提供了額外的層,例如路由,轉換和業務流程管理。它是應用程序之間的中介,集成了Web服務,REST端點,數據庫連接,電子郵件和ftp服務器 - 您可以將其命名。它是一個高級集成骨幹網,它在說不同協議的應用網絡中協調互操作性。

A 消息代理是一個較低級別的組件,它使您可以作爲開發者在發佈者和訂閱者之間(通常是在同一個系統的組件之間但並非總是)之間轉發原始消息。它用於啓用異步處理以保持低響應時間。有些任務需要更長的時間來處理,如果不是時間敏感的,你不希望他們把事情做好。相反,請將消息發佈到隊列中(作爲發佈者),然後讓用戶選擇它並「稍後」處理它。

+1

這是一個非常以網絡爲中心的消息代理視圖 - 網頁必須返回的想法,但某些任務可能需要比用戶想要等待更長的時間 - 但消息代理的應用程序比這更廣泛。 – Dunk 2015-09-16 17:13:55

6

騾是與消息代理實現的「更高的水平」的服務。從docs

ESB的消息中樞是 通常使用JMS實現,但任何 其他消息服務器執行 可以用來

可以構建ESB與兔;但是,你將僅限於發送byte []包,並且你必須從主題和隊列等消息傳遞原語中構建系統。它可能會更快一些(基於絕對沒有基準測試,測試或數據),因爲翻譯層數較少。 Mule在此之上提供了一個抽象概念,講述了各種傳輸,並且可以處理一些路由邏輯。

0

騾是企業服務總線提供端到端的集成解決方案,其中如兔是用於排隊訂戶和接收器之間的消息的消息代理。

+0

亨利克提供的答案的副本 – dutchRooster 2016-09-20 20:21:57

1

RabbitMQ是一個開源的消息代理軟件,採用Erlang編程語言編寫,構建於Open Telecom Platform上,用於集羣和故障轉移。它易於使用,支持大量開發人員平臺並可在所有主要操作系統上運行。它適用於一個名爲Exchange的概念。 Mule通過AMQP連接器連接RabbitMQ。