2012-03-14 111 views
1

快速後端總線這是我試圖解決用例:用駱駝與REST服務

我:

  • 客戶端C,這是一個Web應用程序,

  • 一個前端模塊A,露出REST API,

  • 後端模塊B,也暴露REST API。 (我不能改變這個模塊不屬於我,並且只有一個REST API)

爲一體的服務,C電話有它調用B.一切都發生在REST。它的速度很快,因爲REST調用是同步的(即阻塞)。

現在我想解耦A和B,A不直接知道B.

所以我想知道關於把駱駝的消息總線在中間。它將給:

Ç---(REST調用)---->一個---->駱駝---(REST調用)--->乙


我的問題

這是一個好主意,如果是的話,它仍然是快速的(A和B之間沒有任何東西,我在本地網絡上的響應時間少於10毫秒)?

決勝局

將它的工作與ServiceMix的一樣嗎?

謝謝!

+0

不能你只寫了出版商用戶一個真正的終點,並有一個真正的出版商,以便這樣你可以不斷地只是從你的脫鉤用戶檢查呢? – Kristian 2012-03-14 15:07:27

+0

@Kristian模塊B不能成爲訂戶,它是我不管理自己的模塊。 – unludo 2012-03-14 15:09:56

回答

2

你問一個消息總線是否是一個很好的架構,還是你問,因爲你已經選擇使用一個消息總線,如果駱駝/ ServiceMix的是正確的解決方案?

我會採取兩種方式 - IMHO基於消息的體系結構(特別是事件驅動體系結構)非常棒。搜索infoq.com上的事件驅動架構以獲取豐富的信息。提供夢幻般的解耦,可擴展性,關注點分離等。

它會很快嗎?太多的因素有回答。它肯定會比點對點休息呼叫花費更多,但可能不夠重要。還取決於你選擇哪種消息傳遞代理,如果你需要選擇性隊列等等等等。我使用Camel來提供這樣的解決方案,它對於我所需要的'足夠快'。你必須嘗試一下。

不知道如何回答'它的工作原理是否相同'ServiceMix使用Camel進行路由,所以它的一些工作原理是一樣的。但ServiceMix的也有內置ActiveMQ的,所以如果你決定使用其他東西的ActiveMQ(如RabbitMQ的),那麼它會工作方式不同:)