此过程概要介绍了将应用程序客户机容器 (ACC) 与 RMI-IIOP 负载平衡和故障转移结合使用所需要的步骤。有关 ACC 的其他信息,请参见《Sun Java System Application Server 9.1 Developer’s Guide》中的“Developing Clients Using the ACC”。
转到 install_dir/bin 目录。
运行 package-appclient。
此实用程序生成一个 appclient.jar 文件。有关 package-appclient 的更多信息,请参见 package-appclient(1M)。
将 appclient.jar 文件复制到需要作为客户机的计算机上,然后将其解压缩。
编辑 asenv.conf 或 asenv.bat 路径变量,以引用该计算机上的正确目录值。
该文件位于 appclient-install-dir/config/ 中。
有关待更新路径变量的列表,请参见 package-appclient(1M)。
如果需要,请使 appclient 脚本成为可执行脚本。
例如,在 UNIX 上使用 chmod 700。
至少查找群集中两个实例的 IIOP 侦听器端口号。
在步骤 7 中将 IIOP 侦听器指定为端点。
对于每个实例,按如下所述获取 IIOP 侦听器端口:
在 sun-acc.xml 文件中至少添加两个 target-server 元素。
群集功能在开发者配置文件中不可用。有关配置文件的信息,请参见《Sun Java System Application Server 9.1 管理指南》中的“用法配置文件”。
使用在步骤 6 中获取的端点。
如果在其上部署应用程序客户机的 Application Server 实例参与群集,则 ACC 将自动查找群集中当前处于活动状态的所有 IIOP 端点。但是,客户机至少应指定两个端点以达到引导目的,以防其中一个端点出现故障。
target-server 元素指定用于负载平衡的一个或多个 IIOP 端点。address 属性是 IPv4 地址或主机名,port 属性指定端口号。请参见《Sun Java System Application Server 9.1 Application Deployment Guide》中的“client-container”。
作为使用 target-server 元素的替代方法,可以使用 endpoints 属性,如下所示:
jvmarg value = "-Dcom.sun.appserv.iiop.endpoints=host1:port1,host2:port2,..." |
如果需要加权 round-robin 负载平衡,请执行以下步骤:
部署客户机应用程序,同时使用 --retrieve 选项获取客户机 jar 文件。
将该客户机 jar 文件保留在客户机上。
例如:
asadmin deploy --user admin --passwordfile pw.txt --retrieve /my_dir myapp |
按下述命令运行应用程序客户机:
appclient -client clientjar -name appname
在此示例中,包含三个实例的群集中负载平衡权重如下表所示进行设置。
实例名称 |
负载平衡权重 |
---|---|
i1 |
100 |
i2 |
200 |
i3 |
300 |
设置这些负载平衡权重的命令序列如下:
asadmin set i1.lb-weight=100 asadmin set i2.lb-weight=200 asadmin set i3.lb-weight=300 |
要测试故障转移,请停止群集中的一个实例,然后查看应用程序是否正常运行。在客户机应用程序中还可以有断点(或休眠)。
要测试负载平衡,请使用多个客户机并查看负载在所有端点上的分布情况。