我曾經在一堆Tomcat/WAR項目部署中工作了一段時間,但現在正考慮使用ESB模型(即SericeMix)。什麼是主要優點/缺點爲什麼我應該對切換感興趣?使用ServiceMix vs Tomcat/WAR模型的優缺點是什麼?
謝謝!
我曾經在一堆Tomcat/WAR項目部署中工作了一段時間,但現在正考慮使用ESB模型(即SericeMix)。什麼是主要優點/缺點爲什麼我應該對切換感興趣?使用ServiceMix vs Tomcat/WAR模型的優缺點是什麼?
謝謝!
從我自己的經驗。
ServiceMix和OSGi通常會過度複雜部署模型。
如果您沒有充分利用OSGi的優勢,即註冊服務,創建片段捆綁包等,並且您正在執行通常對Tomcat,Jetty等所做的工作,那麼我會明確指出。另一方面,如果您要創建小型的可重用捆綁軟件,並希望引入諸如消息傳遞,排隊和其他ESB類型功能的服務,ServiceMix以我的經驗爲我提供了一切期望從ESB。
我也使用OBR,這大大簡化了依賴關係的解決方案。有了ServiceMix(具體來說就是Apache Karaf),似乎沒有辦法而不是在這個時候安裝可選的依賴項,這讓我很悲傷,不得不應對包衝突。
如果你想兩全其美,我會考慮Apache駱駝。它提供了許多ESB功能,可以部署到任何容器,包括tomcat和servicemix。
ServiceMix可能令人沮喪,因爲您經常被鎖定到某些版本的項目,如駱駝,CXF和WSS4J。您可以手動升級容器以包含您需要的版本,但這可能很困難。但是,版本4.5.x的ServiceMix團隊在發佈次要版本方面做得更好,以適應這一點。在構建WAR時,只需選擇您的項目版本/構建/部署。
關於OSGi容器的另一件事是,並不是所有的項目都有適合你的OSGi套件。例如,過去我需要具有特定功能的Apache POI。我必須自己去創建OSGi包。
OSGi容器的優點在於,您構建的包的大小非常小,不會與jar文件臃腫,並且可以同時運行不同版本的bundle。然而,正如沃夫加所說,如果你不需要這個功能,可能更容易保持清醒。