配置可自动缩放集群以实现 JVM 弹性

可配置集合体以支持 Java 虚拟机 (JVM) 弹性。通过 JVM 弹性,缩放控制器可根据资源使用及缩放策略启动或停止 Liberty 服务器。只有已在集合体中的服务器才符合缩放资格。不会供应新服务器。

开始之前

所收集资源使用信息的类型随 JDK 不同而变化。用于 Windows 和 Linux 操作系统的 IBM JDK 1.7 提供自动缩放需要的所有使用信息,并且这是首选 JDK。其他 JDK 可能未提供根据个别 JVM 资源使用率自动缩放时需要的所有使用信息。
避免故障: 使用管理控制台可启动和停止 Liberty 服务器(仅当此服务器处于维护状态时),此服务器为可自动缩放集群的集群成员。如果从命令行启动或停止作为可自动缩放集群的集群成员的 Liberty 服务器,那么会导致不可预测的结果。

过程

  1. 创建集合体。

    有关创建集合体控制器和成员服务器的详细信息,请参阅配置 Liberty 集合体

    注: 建议完成第一步之后再继续此过程。第一步指示用户创建集合体、添加成员并启动控制器和成员。
  2. 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 配置是动态的,所以当您添加缩放控制器时,该控制器的缺省缩放策略将生效,您可能会收到意外结果。例如,缺省策略最少具有 2 个服务器,所以,当您保存缩放控制器 server.xml 文件时,控制器将尝试启动 2 个服务器。如果不希望出现此行为,那么您可能想要同时为该控制器定义策略。
    注: 缩放控制器注册成员并显示 CWWKV0121I 消息可能需要一些时间。
  3. 可选: 更改缺省缩放策略值以满足您的环境需要。有关更多信息,请参阅定义缩放策略以管理工作负载
  4. scalingMember-1.0 功能部件添加至您希望缩放控制器控制的所有集合体成员。 在成员 server.xml 文件中定义 hostSingleton 元素及端口。每个缩放成员需要在 server.xml 中定义 hostSingleton 元素及端口。同一主机上所有缩放成员必须使用同一端口。可指定任意端口,但端口号在主机上必须唯一。以下示例使用端口号 20020:
    <featureManager>
     <feature>jsp-2.2</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: Server host=host_name;userdir=path_to_usr_directory;server=member_name;port=member_port_number;service=ScalingMemberSingletonService;scope=host 被选择作为主机引导者。
    注: 如果未将 hostSingleton 元素添加至 scalingMember server.xml 或者您在同一主机的每个缩放成员上使用不同端口,那么系统可能选择多个主机引导者。这可能会导致错误的缩放决策。您将在控制器的 messages.log 中看到以下消息:
    CWWKV0123E: 在主机 host_name 上检测到重复主机单体引导者。此情况可能导致缩放控制器决策效果下降。服务器 server_name1 的引导者身份为 leader_id1。服务器 server_name2 的引导者身份为 leader_id2。

    有关 hostSingleton 元素的更多信息,请参阅集合体成员

    多媒体 观看:配置 Liberty 可自动缩放集群以实现 JVM 弹性视频演示了该过程。[脚本]


用于指示主题类型的图标 任务主题

文件名:twlp_wve_configjvmelast.html