2009-09-02 99 views
27

我在看的ESB集成到現有的Java/Maven的基於Web的產品。具體來說,我在看ServiceMix和Mule。該產品將連接到幾種不同的服務,包括電子郵件,Quartz,通過HTTP,SMS和IM的RESTful Web服務。我只是快速瀏覽了文檔,這兩個選項似乎相當重量級且相當複雜。這似乎是什麼時候使用ESB的教科書示例,但我不想花大量時間學習一個或另一個系統。正在整合一個值得學習曲線的ESB(ServiceMix/Mule)嗎?

就像我說的,我已經有了一個由Maven構建的web應用程序,並且希望集成其中一個系統會相當簡單,即使只是發送電子郵件這樣簡單的東西,但它看起來像添加任何一個都會拉入在罐子方面佔世界的一半,並且很難嵌入到現有產品中。

是值得一試的其中一個選項來拉?有沒有一種簡單的方法將它們整合到現有的應用程序中,而不必完全重構它?有其他更輕的選項嗎?我應該考慮哪些方面會使他們的使用值得?

+2

什麼是ESB購買你除了更復雜?你爲什麼認爲你需要它?有多少服務是「幾個」,您認爲您必須擁有多少服務才能使ESB成爲必需? – duffymo 2009-09-02 00:43:39

+1

我預計在我們達到生產時,將擁有低至兩位數的外部服務。他們會有所不同,但他們中的許多人將服務於類似的目的。例如,通過電子郵件,即時通訊或短信通知,其中唯一的區別是媒介。 – Tim 2009-09-02 15:56:54

+4

超過一年後的跟進。最終交出了駱​​駝的騾子。我們對駱駝很滿意。令人驚訝的充滿活力的社區,輕量級,現在有一本書來補充一般良好的文檔。我會說,從駱駝開始,除非有一些明顯的原因,你需要一個完整的ESB。 – Tim 2011-01-05 14:53:13

回答

13

Mule在插入XML服務方面非常簡單,他們有很多視頻示例,我發現這些示例非常有用。

ESB應該是未來,正如你所說 - 你的確看起來像是一個教科書中使用它的例子。

我會盡力回答您的問題:

是值得一試的其中一個選項來拉? 我認爲這是你需要問自己一個問題 - 什麼是你想達到什麼目的?如果你想讓它更容易實現,那麼通過純代碼或ESB可能需要相同的時間才能完成所有設置。如果你想把它當作學習練習,那可能是值得的。

有沒有一種簡單的方法將它們整合到現有的應用程序中,而無需完全重構? 簡短回答沒有。您需要重新設計才能與大多數第三方庫/框架集成。

還有沒有其他的,重量更輕的選擇嗎? 騾真的很簡單。您可能可以使用MQ來執行HTTP,SMS和IM。可能是ActiveMQ或RabbitMQ。

我應該考慮哪些方面讓他們的使用值得? 是,ESB產品是專爲企業,其中新業務往往添加和配置是可能改變。全部使用XML使得這一改變變得更容易一些。所以,如果你只是建立一個一次性的軟件,它可能不是正確的路。但是,如果您稍後添加更多內容並不斷連接不同的服務,它可能是最佳路線。

+1

我能夠讓Mule和這個項目一起工作,而且沒有太多麻煩,儘管它看起來似乎可以吸引大多數可以想象的jar。當我最終得到正確的咒語時,對我的代碼的影響非常小,這很好,但文檔對於將Mule集成到現有的web應用程序並不是很好。我仍然不知道這是否值得,但我現在有辦法確定這一點。謝謝。 – Tim 2009-09-07 13:08:31

4

騾子項目的創始人羅斯梅森在這個主題上寫了一篇很好的文章,To ESB or Not to ESB。我建議看看它。此外,您可能想看看Mule iBeans如果你正在建設這是一個Web應用程序,只想做一些簡單的集成和不感興趣的調解它提供了一個更簡單的模型。

+0

https://blogs.mulesoft.com/dev/mule-dev/to-esb-or-not-to-esb/(新鏈接) – 2017-06-15 00:30:26

12

您可能還想看看Apache Camel框架,它對於您提到的所有集成需求都非常強大,並且不會受到完整的ESB的懲罰。

+2

有趣的是,你應該提及,因爲我現在正在評估駱駝作爲潛在的選擇而不是騾子,因爲它似乎更輕。我還沒有做出任何決定,但它似乎確實可以給我我需要的東西而沒有太多的開銷。 – Tim 2009-11-12 01:15:12

1

我建議不要浪費寶貴的時間與MULE。我迄今爲止的經歷並不好。 我不會將它用於任何關鍵系統。它遠離成熟的產品。 除此之外,RESTful服務絕對承諾很多簡單並具有實際使用情況。

1

我想說,如果您有兩個以上的應用程序或數據庫需要彼此交談並且他們使用多種通信協議,那麼投資是值得的。或者,如果你預計未來這種情況將是真實的。聽起來像你的要求當然適合這個。

另一種表明使用ESB或至少一條消息總線的情況是您期望或需要一個或多個應用程序獨立於其他應用程序進化的地方。例如,一個正在積極發展中,其他則沒有。 ESB可以將穩定的系統與活躍開發的系統中的更改隔離開來,無需始終更新所有內容。

ESB的真正威力在於,應用程序可以委派有關如何溝通的所有決策以及與ESB進行通信的人員,並讓該組件對這些方面負全部責任。所有其他組件都彼此隔離,無需擔心彼此,從而大大減少了依賴關係組合的問題。

在學習曲線,我發現騾子ESB是相當直截了當地拿起肯定將是努力學習所有需要的API來說話的,你是想多業務低得多的學習曲線方面連接到。