![[8.5.5.5 或更新版本]](../ng_v8555.gif)
配置可自動調整的叢集,以具備 JVM 彈性
您可以將群體配置成支援 Java 虛擬機器 (JVM) 彈性。具備 JVM 彈性時,調整控制器可以根據資源使用率和調整原則,來啟動或停止 Liberty 伺服器。伺服器必須已在群體中,才符合調整資格。不會供應新的伺服器。
開始之前
程序
- 建立群體。
如需建立群體控制器和成員伺服器的詳細資料,請參閱配置 Liberty 群體。
註: 建議您完成第一個步驟,再繼續進行。步驟 1 會指示使用者建立群體、新增成員,以及啟動控制器和成員。 - 將 scalingController-1.0 特性新增至一或多個群體控制器的 server.xml 檔。在您儲存 server.xml 檔時,除非另有指定,否則會施行預設原則。
<featureManager> <feature>jsp-2.2</feature> <feature>collectiveController-1.0</feature> <feature>scalingController-1.0</feature> </featureManager>
新增特性之後,只要群體控制器還在執行,群體控制器的 messages.log 中,會顯示下列訊息(順序不拘):
CWWKV0300I: StackManager 服務已啟動。 CWWKV0302I: 現有的堆疊是 [] CWWKV0100I: ScalingController 特性已啟動。 CWWKX1002I: 範圍的單態服務 ScalingControllerSingletonService CWWKV0102I: 選取這部伺服器作為主要調整控制器。 CWWKF0012I: 伺服器已安裝下列特性:[scalingController-1.0]。
註: 由於 Liberty 配置是動態的,在您新增調整控制器時,控制器的預設調整原則會起作用,您可能得到非預期的結果。舉例來說,預設原則是至少兩部伺服器,因此當您儲存調整控制器的 server.xml 檔時,控制器會嘗試啟動兩部伺服器。如果您不想出現該行為,您可能希望同時為控制器定義一項原則。註: 可能需要一些時間讓調整控制器登錄成員,並顯示 CWWKV0121I 訊息。 - 選擇性的: 變更預設調整原則,以符合您環境的需求。如需相關資訊,請參閱定義調整原則來管理工作量。
- 同時將 clusterMember-1.0 和 scalingMember-1.0 特性,新增至您希望由調整控制器控制的所有群體成員。 在成員的 server.xml 檔中,定義一個 hostSingleton 元素與埠。每一個調整成員都必須在 server.xml 中定義一個 hostSingleton 元素與埠。同一主機上的所有調整成員必須使用相同埠。您可以指定任何埠號,但是該埠號在主機上必須是唯一的。下列範例使用埠號 20020:
<featureManager> <feature>jsp-2.2</feature> <feature>clusterMember-1.0</feature> <feature>scalingMember-1.0</feature> </featureManager> <hostSingleton name="ScalingMemberSingletonService" port="20020 " />
在您新增特性和 hostSingleton 元素時,如果伺服器未啟動,您必須手動啟動它一次,讓調整控制器能夠辨識新增的特性。下列訊息(順序不拘)會顯示在群體成員的 messages.log 中:
CWWKX1000I: SingletonMessenger MBean 可供使用。 CWWKX7400I: ClusterMember MBean 可供使用。 CWWKX1002I: 已建立範圍主機的單態服務 ScalingMemberSingletonService。 CWWKV0200I: ScalingMember 特性已啟動。 CWWKX1004I: 訊息管理程式連線已連接主機=controller_host_name,埠=controller_port_number。
每部主機上只有一個調整成員會與調整控制器通訊。第一個連接 ScalingMemberSingletonService 的調整成員會選為主機主導器。如果主機主導器停止,會透過 scalingMemberSingletonService 裁定的選擇程序,由另一個調整成員接手成為主機主導器。同一主機和叢集上的所有調整成員必須使用相同的 ScalingMemberSingletonService 埠。
註: 當選擇調整成員作為主機主導器時,您會在群體成員的 messages.log 中看到下列訊息:CWWKV0203I: 伺服器主機=host_name;使用者目錄=path_to_usr_directory;伺服器=member_name;埠=member_port_number;服務=ScalingMemberSingletonService;範圍=選擇主機作為主機主導器。
註: 如果您沒有在 scalingMember server.xml 中新增 hostSingleton 元素,或者您在相同主機中的每一個 scalingMember 上使用不同埠,可能會選取多部主機主導器。這可能導致調整決策不正確。您會在控制器的 messages.log 中看到下列訊息:CWWKV0123E: 在主機 host_name 上偵測到重複的主機單態主導器。此情況可能降低調整控制器的決策品質。伺服器 server_name1 的主導器身分是 leader_id1。伺服器 server_name2 的主導器身分是 leader_id2。
如需 hostSingleton 元素的相關資訊,請參閱 Collective Member。
觀看:配置 Liberty 可自動調整的叢集,以具備 JVM 彈性視訊示範這項程序。[文字稿]
相關工作: