FuseSource最近發布了ActiveMQ和ServiceMix發行版的企業版。 其中一些重要功能包括增量修補 , 自定義平臺安裝程序和第三方驗證 。 新企業版附帶的最酷的功能之一是Fuse Fabric和一些新工具 ,使您可以利用Fabric管理環境。 Fabric允許您通過一些命令行或在基于Web的漂亮應用程序中單擊按鈕來部署,配置和配置ESB容器和MQ容器 。 可以根據需要將任意數量的容器部署到遠程盒或云中,進行自定義配置,以及從中央位置安裝或升級應用程序,駱駝路線或容器本身。 設置大型部署以進行集成和管理非常困難。 織物和隨附的工具有助于減輕這種痛苦。 另外,使用Fabric可以使您感到舒適,因為其許可證與其他Apache項目使用的開放,靈活的許可證相同: Apache License 2.0 。
部署頭痛大
讓我們簡要回顧一下在整個企業中部署和維護集成容器的一些問題,無論是在數據中心還是在遠程位置(例如移動平臺或業務合作伙伴):
安裝 :在一個盒子上,下載和安裝(例如ActiveMQ)非常容易。 但是,舉例來說,您具有一個復雜的代理網絡和主從對網絡。 您必須將ssh放入每個框中,解壓發行版,相應地設置權限,在安裝過程中設置所有目錄或環境變量,然后在正確的端口上啟動代理。
配置 :安裝了代理后,您需要對其進行配置,以便通過正確設置網絡連接器將其加入代理網絡,將代理指向共享存儲,設置任何流控制或訂閱策略詳細信息或其他內容代理配置調整是拓撲的一部分。 事實是,您的企業可能由不同的操作系統,具有不同資源可用性的計算機組成,并且針對不同的用例而設計,這可能會帶來噩夢。
升級容器 :進行升級時,您必須遵循上面的兩個步驟,并希望您不要弄亂任何東西。 如果出于任何原因需要回滾,則必須確保已采用自定義回滾策略。
Container Intropsection :您使用哪些工具查看OS /機器使用情況的基本統計信息? 還是基于ActiveMQ或Camel的解決方案的詳細信息? 您可能需要登錄到每個框,或找到每個框的JMX URL。 不用說,對于大型部署這樣做將是令人望而卻步的。
保險絲織物的創建旨在解決這些維護問題。 讓我們看看如何。 首先,您可能有興趣獲得Fuse Fabric或Fuse管理控制臺。 FuseSource建議通過管理控制臺使用Fabric。 請注意以下兩點:1)默認情況下, Fuse ESB Enterprise和Fuse MQ Enterprise附帶了Fabric,但是2) 管理控制臺 (由命令行外殼和Web應用程序組成)需要訂閱webapp部分。 該網絡應用需要訂閱。 Shell控制臺沒有。
因此,請下載保險絲管理控制臺 (FMC)并使用以下命令行啟動外殼:
./bin/fmc
您會注意到,這是一個裝有許多東西的Karaf容器。 Karaf是一個OSGI容器,內置了一些額外的東西。 讓我們快速看一下FMC分發的一些內容:
在外殼中,鍵入以下內容,它將列出閾值> 0的所有捆綁包
FMC:karaf@FuseManagementConsole> list -t 0
一些有趣的東西:
- 運行的Karaf實例所需的關鍵Karaf捆綁包
- 保險絲結構Zookeeper服務
- 保險絲芯
- 碼頭捆綁
- jclouds捆綁包
- 保險絲應用套件
- 保險絲管理控制臺Web存檔
需要注意幾個關鍵事項:“動物園管理員”的想法? 服務,“? 保險絲應用套件 “? 和保險絲管理控制臺Web存檔。 如前所述,管理控制臺需要訂閱FuseSource,但是有很多機會可以在沒有訂閱密鑰的情況下進行嘗試。 有一些試用密鑰可用于評估它。
Fuse Application Bundles是FuseSource的一個新項目,它使您可以更容易地將jar工件(或戰爭)作為OSGI捆綁包進行部署,而不必依賴于OSGI構建的知識(bnd)或清單的OSGI導入/導出細節。 它允許您部署工件,并使框架正確地將其識別為OSGI捆綁包,并自動配置所有正確的依賴項。
最后,Fuse Zookeeper服務在那里提供分布式注冊表,用于存儲配置和節點詳細信息。 讓我們進一步介紹一下。 ?
保險絲注冊表
Apache Zookeeper通過提供分布式“協調”來支持Fuse Fabric的實施? 注冊服務。 這意味著Zookeeper提供了一個注冊表,其目的是存儲有關可能在企業中部署的遠程容器的信息。 Fuse Fabric注冊表存儲有關特定集成容器,這些容器的配置,這些容器的位置以及如何訪問它們的信息。 您可以在群集( ensemble )中運行多個復制的注冊表,以在某些注冊表節點出現故障時提供高可用性。 建議使用奇數個注冊表服務器來形成一個整體 。 啟動FMC Shell之后,讓我們使用以下命令創建結構,該結構將創建注冊表:
FMC:karaf@FuseManagementConsole> fabric:create
讓我們快速退后一步。 我們在說什么容器? ?
貨柜
Fuse Fabric的目的是管理,配置和配置容器。 容器是Karaf容器。 是的,Karaf容器是OSGI容器。 管理,配置和供應機制圍繞Karaf,安裝了哪些捆綁軟件,啟用了哪些功能,對于功能/捆綁包可用的配置等。Karaf是Apache ServiceMix和Fuse Enterprise ESB當前使用的核心容器。 如果您想稍微了解一下Karaf,請參閱Apache站點上的文檔 。
因此,通過Fabric部署的所有東西都是Karaf容器,這些容器的位置,配置和可訪問性都保留在注冊表中(由Zookeeper實現)。 到目前為止,一切都很好? 讓我們開始研究如何指定這些容器的配置。 ?
個人資料
Fuse Fabric具有稱為配置文件的內容 ,可用于指定容器的配置。 配置可能太籠統,無法準確傳達配置文件的功能。 個人資料“呼吸生命”? 放入原本毫無趣味的Karaf容器中。 讓我們快速進入外殼。 輸入以下內容:
FMC:karaf@FuseManagementConsole> profile-list
你應該看到的配置文件中包含“?駱駝”?“?ESB”?“?MQ”?“例如,MQ”?和其他幾個人的名字。 這些是開箱即用的配置文件。 駱駝配置文件將一個容器變成了一個能夠運行駱駝路線的容器。 mq配置文件將容器變成ActiveMQ代理。 esb配置文件變成一個容器,您可以在其中構建駱駝路線,activemq客戶端并使用NMR。 換句話說,配置文件是“包”? 可以應用于容器的功能 如果您熟悉OSGI和Karaf功能,則可以使用功能和捆綁包來實現這些配置文件 。 配置文件指定了容器應安裝的功能,保險絲應用程序捆綁包,OSGI捆綁包,maven存儲庫,配置服務屬性和系統屬性應可用并將其安裝到容器中。 這是對“配置”進行分組的一種非常有效的方法,只需單擊一下按鈕即可將其應用,以將Karaf容器變成功能更強大的集成容器。 可以將多個概要文件應用于一個容器,并且可以將單個概要文件部署到多個容器(多對多關系)。
FMC中默認情況下可用的配置文件可用作創建自己的配置文件的起點。 可以從配置文件繼承配置文件,子配置文件可以覆蓋父配置。 您可以使用從多個“父配置文件”繼承嗎? 也一樣 假設您有一組容器,所有這些容器都應部署相同的駱駝路線,但是每個容器針對該路線將具有不同的配置。 您可以從父配置文件開始,并從其繼承其他指定更具體配置的配置文件。
概要文件也可以進行版本控制。 例如,在開箱即用的狀態下,您會看到所有配置文件都被視為“ 1.0版”的一部分。 一個版本指定“一組配置文件”。 如果要創建新版本,則可以為1.1或2.0版本或您指定的編號創建一組新的配置文件。 使用版本,您可以快速部署新版本的容器,應用程序,代理,配置等,以選擇容器或所有容器。 版本控制機制是Fuse Fabric允許您支持對容器進行部署的滾動升級的方式。 ?
保險絲座
所有版本的所有配置文件都存儲在保險絲注冊表(zookeeper)中。 使用Fuse Fabric創建新容器時,它是使用代理服務創建的。 代理或資源調配代理位于遠程容器中,并連接到注冊表以找出對其應用了哪些配置文件。 當看到配置文件或對配置文件進行更改時,該代理負責配置和安裝所需的功能,捆綁軟件和配置。
對Fuse Fabric部署的容器的隱含限制是,您無需登錄到容器并在本地進行更改。 所有更改都應由注冊表和保險絲結構管理。
概括
分布式注冊表用于對有關已部署哪些容器,它們在何處以及如何到達它們的信息進行分類。 注冊表還包含配置文件和所有版本的配置文件形式的所有配置。 一個容器,僅是一個Karaf容器,與Fuse Fabric一起部署并連接到注冊表以查看對其應用了哪些配置文件。 容器的供應代理負責下載,安裝和配置概要文件指定的所有功能和捆綁包。 可以應用的配置文件種類包括添加代理功能,ESB功能,駱駝路線,保險絲應用程序捆綁包,CXF Web服務,OSGI服務以及可以部署到OSGI容器中的任何其他內容的配置文件。
在這篇文章中,我們對Fuse Fabric是一個廣泛的概述。 在第2部分中,我們將更仔細地研究Fabric的功能,并展示一些涼爽之處,使我們能夠解決與部署和管理大量容器或代理有關的難題。
參考:通過Christian Posta軟件博客的JCG合作伙伴 Christian Posta, 使用Fuse Fabric管理MQ和ESB的大型部署,第一部分 。