配置可供应集群以实现 Liberty 弹性
可配置集合体以支持 Liberty 弹性。通过 Liberty 弹性,缩放控制器可将 Liberty 软件安装至已注册主机并创建新服务器。而且,因为对 Liberty 弹性的支持包括对 JVM 弹性的支持,所以缩放控制器可根据资源使用策略及可选缩放策略启动或停止 Liberty 服务器。应用程序需求很高时,可用服务器数增加,应用程序需求很低时,可用服务器数减少。
开始之前
确定要安装 Liberty 软件的目标主机及要安装的 Liberty 软件。您至少需要缩放控制器以在目标主机上安装以下可安装文件和软件包文件:
- 一个软件包,它提供带有一个应用程序的独立 Liberty 服务器。步骤 5c 说明如何创建服务器软件包。
- 一个可安装文件,它提供一个 Liberty 服务器,该服务器包含 wlp 目录,但不包含 usr 目录。步骤 5a 说明如何创建 Liberty 运行时归档可安装文件。
每个目标主机都需要 RXA 或 SSH,并要求已安装符合 Liberty 服务器最低需求的 Java 运行时环境 (JRE)。请参阅设置 RXA 以执行 Liberty 集合体操作和为 Liberty 集合体成员和控制器设置 JAVA_HOME 变量。
如果目标主机未安装其 JAVA_HOME 变量和系统 PATH 变量提供 JRE 路径的已安装 JRE,那么缩放控制器可在目标主机上安装该 JRE。步骤 5b 说明如何创建 JRE 归档(可安装文件)。
观看:配置自动可缩放集群以实现 Liberty 弹性视频说明了如何配置可供应集群。[脚本]
过程
- 配置集合体以支持 Java 虚拟机 (JVM) 弹性。确保集合体至少具有一个动态集群成员。
有关使用动态集群成员配置缩放控制器的详细信息,请参阅配置可自动缩放集群以实现 JVM 弹性。
- 确保每个现有动态集群成员属于名称符合 StackGroupName.PackageName 命名约定的集群。
缩放控制器将提供的现有动态集群成员和服务器将是此集群的成员。StackGroupName 是将包含可安装文件和软件包的共享目录的名称,缩放控制器将根据缩放策略在目标主机上提供这些可安装文件和软件包。PackageName 是缩放控制器将在目标主机上提供的服务器软件包的名称。
对于名为 myStackGroup.cluster1 的集群,将以下语句放置到每个现有动态集群成员的 server.xml 文件中:
<clusterMember name="myStackGroup.cluster1"/>
您将对本主题的步骤 5c 和 7 使用此集群名称。在步骤 5c 中,对服务器软件包名称使用 cluster1.zip。在步骤 7 中,为要部署的可安装文件和软件包创建 myStackGroup 目录。
- 可选: 将缩放策略添加至缩放控制器。请参阅定义缩放策略。
- 向缩放控制器注册每个目标主机。
注册主机将允许缩放控制器将文件传输至该主机,以及在该主机上访问文件、命令和其他资源。使用 registerHost 命令注册目标主机。查看缩放控制器的 server.xml 文件以查找 --host、--port、--user 和 --password 参数的值。要避免使用 SSH 专用密钥文件(例如,对于 Linux 或 Windows 操作系统上的目标主机),请通过设置 --rpcUser 和 --rpcUserPassword 参数来添加操作系统登录用户和密码。--rpcUser 指定的用户必须具有对目标部署位置的操作系统权限。
wlp/bin/collective registerHost targetHost --host=controllerHost --port=controllerHTTPSPort --user=controllerAdmin --password=controllerAdminPassword --rpcUser=osUser --rpcUserPassword=osUserPassword
要将文件传输至目标主机,您不必在命令中添加 --hostWritePath 参数;堆栈供应代码集会为您编写路径。如果已注册主机,那么可使用 updateHost 命令重置注册信息。有关更多信息,请参阅向 Liberty 集合体注册主机。
如果目标主机与控制器主机在相同计算机上,那么您还必须对控制器主机运行 updateHost 命令。
- 创建并配置缩放控制器可部署至已注册主机的可安装文件和软件包。
可安装文件是您要安装在已注册主机上的应用程序需要运行的二进制文件,例如,Liberty 运行时或 JRE。软件包是打包成压缩文件的应用程序。
- 创建包含 wlp 目录但不包含 usr 目录的 Liberty 运行时归档。 此可安装文件的命名约定为 type.name.zip;例如,wlp.855.zip。要创建 Liberty 运行时归档,您有以下选择:
- 运行带 --include=wlp 选项的 Liberty 服务器 package 命令;例如:
wlp/bin/server package --include=wlp
要指定文件名和目标位置,请添加 --archive=archive_path_name 选项;例如:
wlp/bin/server package --include=wlp --archive=c:\temp\wlp.855.zip
如果未使用 --archive 选项指定有效文件名或目标位置,那么该命令将在 $WLP_OUTPUT_DIR 位置(缺省情况下为 ${wlp.install.dir}/usr/servers 目录)创建 wlp.zip 运行时归档。运行该命令前,目标位置必须存在。因此,如果目标位置为 c:\temp,那么 C:\temp 目录必须存在并且必须具有写许可权,该命令才能将归档写至 C:\temp 目录。
- 运行带 --include=all 选项的 package 命令然后删除 usr 目录。package
命令如下所示:
wlp/bin/server package myServer --include=all --archive=myArchive.zip
- 创建包含 wlp 目录但不包含 usr 目录的压缩 (.zip) 文件。
创建 Liberty 运行时归档后,确保归档名遵循命名约定 wlp.name.zip。
- 运行带 --include=wlp 选项的 Liberty 服务器 package 命令;例如:
- 创建或获取用于 Java Development Kit (JDK) 的归档及任何其他必需可安装文件。 可安装文件的命名约定为 type.name.zip;例如,jre.17.zip。可安装文件的有效类型值为:
- wlp,对于 Liberty 运行时。
- jre,对于 Java 运行时环境。
- other,对于另一文件类型。这是缺省设置。
例如,要为 JRE 创建归档,应创建一个压缩 (.zip) 文件,该文件包含 IBM JRE 安装的 java 目录的内容。不应包含 java 目录,但应包含 java 目录中的所有文件夹和文件。命名归档时,应遵循 jre.name.zip 命名约定。
- 要部署 Liberty 服务器和应用程序,请创建一个包含 Liberty 服务器和应用程序的服务器软件包 ZIP 文件。 服务器软件包的命名约定为 package_name.zip;例如,cluster1.zip。用于创建服务器软件包的选项包括:
- 运行 package 命令:
此命令会创建命名的服务器软件包,例如,C:\wlp\usr\servers\cluster1\cluster1.zip。wlp/bin/server package cluster1 --include=usr
- 运行带 --include=all 选项的 package 命令然后删除 wlp 目录。package
命令如下所示:
wlp/bin/server package cluster1 --include=all --archive=cluster1.zip
- 创建包含 usr 目录但不包含 wlp 目录的压缩 (.zip) 文件。
例如,要创建名为 cluster1.zip 的服务器软件包,此软件包由带有一个应用程序的独立 Liberty 服务器组成:
- 创建服务器:
wlp/bin/server create cluster1
- 将应用程序复制到 cluster1 服务器的 dropins 目录。
- 打包服务器:
wlp/bin/server package cluster1 --include=usr
要点: 确保软件包中的任何 server.env 文件的环境设置在目标主机上有效。如果设置了 JAVA_HOME,那么它必须设置为目标主机上已存在的位置以避免部署失败。注: 对于 Windows 目标主机,请创建 server.env 文件,该文件将 JAVA_HOME 设置为目标主机上的 JRE 位置。运行 package 命令后,将 server.env 与服务器软件包 ZIP 中的 server.xml 文件放置在同一目录中。示例 server.env 内容为:
JAVA_HOME=C:\wlp.jre\jre.17.zip\jre
- 运行 package 命令:
- 创建包含 wlp 目录但不包含 usr 目录的 Liberty 运行时归档。 此可安装文件的命名约定为 type.name.zip;例如,wlp.855.zip。要创建 Liberty 运行时归档,您有以下选择:
- 为缩放控制器 server.xml 文件中的集合体控制器或堆栈管理器设置用户名和密码。
或<collectiveController user="adminUser" password="adminPassword" />
<stackManager controllerUser="adminUser" controllerUserPassword="adminPassword" />
- 将可安装文件和软件包放置在 WLP_STACK_GROUPS_DIR 位置,缺省情况下,此位置为 $WLP_USER_DIR/shared/stackGroups。
缩放控制器监视文件系统中的缺省可安装文件和软件包位置并以动态方式响应更新。如果将可安装文件和软件包放在缺省位置,那么不必更改任何缺省属性。
可使用缺省堆栈组 defaultStackGroup。或者,您可创建您自己的 stackGroups 子目录(例如,myStackGroup)并将其添加至 installables 和 packages 子目录。
wlp/usr /servers /shared ... /stackGroups /defaultStackGroup /installables /packages /myStackGroup /installables /packages
缩放控制器将可安装文件和软件包部署至已注册主机并创建新服务器。
提示: 仅当缩放策略已启用并需要新服务器时,才会创建新服务器。要强制缩放控制器创建新服务器,请调整缩放策略的 min 值和(可能)max 值。例如,如果缩放控制器没有缩放策略并且集合体有三个缩放成员,请将对缩放控制器 server.xml 文件添加策略,该策略强制缩放控制器具有至少四个正在运行的成员:<scalingDefinitions> <defaultScalingPolicy enabled="true" min="4" max="6"/> </scalingDefinitions>
Liberty 弹性的集群命名约定为 StackGroupName.PackageName。部署堆栈时,系统会在所部署服务器的 server.xml 文件中自动设置 <clusterMember name="StackGroupname.PackageName"。对应 <scalingPolicy> 元素包含 <bind clusters="StackGroupName.Packagename"/> 语句。
表 1. 缺省可安装文件和软件包位置. Liberty 环境变量设置缺省安装目录。要覆盖缺省位置,请参阅定制 Liberty 环境。 文件 缺省安装目录 可安装文件类型 wlp /wlp 可安装文件类型 jre /wlp/jre 可安装文件类型 other /wlp/other 软件包 /wlp/usr - 检查堆栈组和可安装文件的配置属性,并根据需要更改堆栈组和可安装文件的配置以定义运行 Liberty 供应的时间和位置。您可能需要覆盖缺省配置。
通过在缩放控制器 server.xml 文件的 stackGroup 和 installable 元素中设置新值来覆盖缺省配置。有关 stackGroup 和 installable 元素的信息,请参阅缩放控制器。
有关覆盖某些元素的缺省值的提示如下所示:
- installable 元素对堆栈组定义可安装文件。installable
元素可为 stackGroup 元素的子元素或 stackGroup 元素的 installableRef 子元素引用的同代。以下示例显示如何在缩放控制器 server.xml 文件中更改设置以覆盖堆栈组的 installable 属性的缺省值:
或<stackGroup name="myStackGroup"> <installable name="wlp.v8555.zip" sourceDir="c:\myStackGroup\installables"/> </stackGroup>
<stackGroup name="myStackGroup" installDir="/myInstallDir" installableRef="myInstallable1, myInstallable2"/> <installable name="wlp.v8555.zip" id="myInstallable1" sourceDir="c:\myStackGroup\installablesOne" /> <installable name="jre.v1.6.zip" id="myInstallable2" sourceDir="c:\myStackGroup\installablesTwo"/>
- deployVariable 子元素指定注入至所部署堆栈的替换变量。可指定每次部署堆栈时替换变量自动递增。例如,使用 deployVariable
属性指定初始端口号值并在每次部署时递增此值。此情况下 deployVariable 的用途是避免在目标主机上发生端口冲突。deployVariable
元素在所部署服务器的 server.xml 文件中使用算术来派生运行时端口号。
例如,要定义起始端口值及增量幅度,请执行以下操作:
- 在所打包服务器 server.xml 文件的 httpEndpoint 元素中设置 httpPort="${http.port}":
<httpEndpoint ... httpPort="${http.port}" />
- 添加 deployVariable 定义,此定义对缩放控制器 server.xml 文件设置起始端口和增量幅度值:
<stackGroup name="DefaultStackGroup" installDir=""> <deployVariable name="http.port" value="9080" increment="1"/> </stackGroup>
然后,后续每次堆栈部署至主机时,httpPort 值递增 1。因此,第一次堆栈部署至 host1 时,HTTP 端点元素为:
<httpEndpoint ... httpPort="9080" />
,第二次堆栈部署至 host1 时,该元素为:
<httpEndpoint ... httpPort="9081" />
至于 deployVariable 属性,value 的缺省值为 null。increment 的缺省值为 0(零)。
如果在缩放控制器 server.xml 文件中指定了 deployVariable,那么所部署服务器的运行时端口号为初始端口 value 字符串增加 increment(整数)。
- 在所打包服务器 server.xml 文件的 httpEndpoint 元素中设置 httpPort="${http.port}":
- 如果缩放控制器 server.xml 按如下所示定义堆栈组,请不要在您用来创建服务器软件包的服务器目录的 bootstrap.properties 文件中再次定义 httpPort。如果您再次定义,那么将使用 bootstrap.properties
中定义的 httpPort 值,而不是 deployVariable 配置元素生成的值。
<stackGroup name="DefaultStackGroup" installDir=""> <deployVariable name="http.port" value="9080" increment="1"/> </stackGroup>
- installable 元素对堆栈组定义可安装文件。installable
元素可为 stackGroup 元素的子元素或 stackGroup 元素的 installableRef 子元素引用的同代。
- 可选: 更改缩放控制器检查文件系统以查找堆栈组添加、更新和删除的时间间隔。
此缩放控制器扫描 stackGroups 目录及其子目录的内容以查找更改。内容更改可能导致控制器提供先前没有可用软件包的集群。更新软件包不会导致控制器再次提供现有集群。
缺省情况下,控制器每 5000 毫秒(5 秒)扫描一次 WLP_STACK_GROUPS_DIR 位置。要更改扫描时间间隔或禁用扫描,请对缩放控制器 server.xml 文件中的堆栈管理器属性 scanningInterval 和 scanningEnable 设置新值。例如,要将扫描时间间隔设置为 6 秒并启用扫描,请向缩放控制器 server.xml 文件添加类似如下的语句:
<stackManager groupsDir="${wlp.install.dir}/usr/shared/stackGroups/" controllerUser="adminUser" controllerUserPassword="adminPassword" scanningInterval="6000" scanningEnable="true"> </stackManager>
要禁用扫描,请将 scanningEnable 设置为 false。
- 可选: 指示缩放控制器扫描文件系统以查找新堆栈组添加、更新和删除。
运行 StackManager MBean 操作以强制缩放控制器检查 WLP_STACK_GROUPS_DIR 位置来查找堆栈组添加、更新和删除。即使缩放控制器 server.xml 文件具有 scanningEnable="false",也可运行 StackManager MBean 操作以强制扫描添加、更新和删除。
请参阅所提供 MBean 的列表以了解有关 StackManager MBean 的信息。
- 可选: 启动 IHS 以允许路由至服务器。
为便于 IBM HTTP Server (IHS) 发现并路由至动态提供的集群上的 Web 应用程序,应在缩放控制器将驻留的主机上启用动态路由选择。IHS 将通过动态路由选择服务检索所提供服务器的路由信息。如果服务器状态为“已启用”,那么您可查看路由信息。
如果未安装 IHS,请参阅为 Liberty 集合体设置动态路由选择。而且,以下视频演示如何使用 IBM Installation Manager 来安装对动态路由选择的支持:
观看:启用 IHS 以实现 Liberty 动态路由选择视频显示如何安装 IHS、安装 WebSphere Application Server 的 Web 服务器插件并应用动态路由选择临时修订。[抄本]

文件名:twlp_autoscale_configlibertyelast.html