2010-10-14 68 views
1

我正在尋找現有的中間件解決方案來解決服務集羣/分發方面的負載平衡和可用性問題。我正在研究基於消息傳遞系統(更具體地說,JMS)構建自己的基礎架構。但是,如果可能的話,我寧願使用已經存在的東西。集羣/分佈式服務有什麼好的中間件解決方案

系統應該能夠在多臺計算機上運行各種服務。根據服務描述,系統應該能夠計算在集羣中啓動特定服務的實例數量。根據待處理的服務請求,它應該動態調整運行的服務數量。監控服務和部署新版本的服務也應該由系統處理。

服務,我的意思是「獨立的功能單位」,有一個預定義的接口。客戶端只需知道接口,中間件就應該注意確保服務在足夠的節點上運行,以便接收通過接口進行的傳入請求。

它應該是與Java很好集成的東西。我的一些服務是作爲本地代碼實現的,但我有一個很好的解決方案將它們封裝到基於Java的服務中。

我已經看過一些中間件/ ESB解決方案,如ICEMule,但我沒有找到它們來解決我上面描述的非常好(如果有的話)動態加載服務配置方面的問題。所以我不知道還有什麼可能是在那裏,這裏有人會想推薦考慮看看......

回答

1

我會建議你更深入的OSGi:

  • 它有一個相當動態模塊系統,讓您在網絡上漫遊的服務
  • 有現有的開放源代碼產品,你可以集結在:月食EquinoxVirgo,阿帕奇FelixKarafKnopflerfishConciergeGlassfish 3等(comparison
  • 作爲遠程側,在OSGi 4.2具有遠程服務規範,其中有幾種實現在那裏。更值得注意的是,如果要使用JMS(article on dzone),ECF似乎可以滿足您的需求。

最後一點,你可以看看Paremus Service Fabric - 從描述聽起來很相似,你正在試圖建立(除非它使用JINI而不是JMS)的野獸。如果沒有別的,它可能是靈感的來源。

他們過去也有一個名爲Newton的開源版本,但由於缺乏興趣而被關閉。它是以服務佈局社區版的名義居住的mentioned,但我目前在他們的網站上找不到任何對它的引用(很可能它只是cancelled)。

最後,這裏有一個靈感來源項目:Bundle-Bee - transparent, grid-distributed OSGi computing。很可能有更多類似的項目在那裏。

+0

偉大的信息。基於OSGi的方法非常有趣,我已經在考慮OSGi構建服務容器,所以這可能非常適合。謝謝! – VoidPointer 2010-10-15 07:57:14

+0

如果這回答你的問題,那麼接受我的答案呢? ;-)另見:http://stackoverflow.com/faq#howtoask – 2010-10-24 16:27:10