Sun Java System Application Server 9.1 高可用性管理指南

设置 RMI-IIOP 负载平衡和故障转移

可以为在应用程序客户机容器 (application client container, ACC) 中运行的应用程序设置 RMI-IIOP 负载平衡和故障转移。还支持加权的 round-robin 负载平衡。

Procedure为应用程序客户机容器设置 RMI-IIOP 负载平衡

此过程概要介绍了将应用程序客户机容器 (ACC) 与 RMI-IIOP 负载平衡和故障转移结合使用所需要的步骤。有关 ACC 的其他信息,请参见《Sun Java System Application Server 9.1 Developer’s Guide》中的“Developing Clients Using the ACC”

  1. 转到 install_dir/bin 目录。

  2. 运行 package-appclient

    此实用程序生成一个 appclient.jar 文件。有关 package-appclient 的更多信息,请参见 package-appclient(1M)

  3. appclient.jar 文件复制到需要作为客户机的计算机上,然后将其解压缩。

  4. 编辑 asenv.confasenv.bat 路径变量,以引用该计算机上的正确目录值。

    该文件位于 appclient-install-dir/config/ 中。

    有关待更新路径变量的列表,请参见 package-appclient(1M)

  5. 如果需要,请使 appclient 脚本成为可执行脚本。

    例如,在 UNIX 上使用 chmod 700

  6. 至少查找群集中两个实例的 IIOP 侦听器端口号。

    步骤 7 中将 IIOP 侦听器指定为端点。

    对于每个实例,按如下所述获取 IIOP 侦听器端口:

    1. 在管理控制台的树组件中,展开“群集”节点。

    2. 展开群集。

    3. 在群集中选择一个实例。

    4. 在右窗格中单击“属性”选项卡。

    5. 注意用于实例的 IIOP 侦听器端口。

  7. 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,..."
    
  8. 如果需要加权 round-robin 负载平衡,请执行以下步骤:

    1. 设置每个服务器实例的负载平衡权重。


      asadmin set instance-name.lb-weight=weight
      
    2. sun-acc.xml 中,将 ACC 的 com.sun.appserv.iiop.loadbalancingpolicy 属性设置为 ic-based-weighted

      …
      <client-container send-password="true">
        <property name="com.sun.appserv.iiop.loadbalancingpolicy" value="ic-based-weighed"/>
      …
  9. 部署客户机应用程序,同时使用 --retrieve 选项获取客户机 jar 文件。

    将该客户机 jar 文件保留在客户机上。

    例如:


    asadmin deploy --user admin --passwordfile pw.txt --retrieve /my_dir myapp
    
  10. 按下述命令运行应用程序客户机:

    appclient -client clientjar -name appname


示例 11–1 为 RMI-IIOP 加权 Round-Robin 负载平衡设置负载平衡权重

在此示例中,包含三个实例的群集中负载平衡权重如下表所示进行设置。

实例名称 

负载平衡权重 

i1

100 

i2

200 

i3

300 

设置这些负载平衡权重的命令序列如下:


asadmin set i1.lb-weight=100
asadmin set i2.lb-weight=200
asadmin set i3.lb-weight=300

接下来的操作

要测试故障转移,请停止群集中的一个实例,然后查看应用程序是否正常运行。在客户机应用程序中还可以有断点(或休眠)。

要测试负载平衡,请使用多个客户机并查看负载在所有端点上的分布情况。