Sun Java System Application Server Enterprise Edition 8.1 管理指南 2005Q1 |
第 3 章
配置负载平衡和故障转移本章介绍了如何设置 Sun Java System Application Server 中的 HTTP 请求的负载平衡。并说明了如何配置由负载平衡器所控制的服务器实例之间的故障转移。此外,本章还讨论了 RMI-IIOP 负载平衡和故障转移。
它包含以下各节:
关于 HTTP 负载平衡和故障转移HTTP 负载平衡和故障转移
负载平衡的目的是在多个 Sun Java System Application Server 实例(独立或群集)之间平均分配工作量,从而提高系统的整体吞吐量。
使用负载平衡器还可以启用从一个服务器实例故障转移到另一个服务器实例的请求。对于要保留的 HTTP 会话信息,请配置 HTTP 会话持久性。有关更多信息,请参见“配置可用性和会话持久性”。
使用 asadmin 工具而不是管理控制台来配置 HTTP 负载平衡。
HTTP 负载平衡的要求
在使用负载平衡器插件进行 HTTP 请求之前,必须满足以下要求:
有关更多信息,请参见“为 HTTP 负载平衡配置 Web 服务器”。
了解指定的请求和未指定的请求
在某个请求首次从 HTTP 客户机传入负载平衡器时,该请求为新会话请求。新会话请求称为未指定的请求。负载平衡器会根据循环(共享)算法将此请求路由到群集中的应用程序服务器实例。有关更多信息,请参见“HTTP 负载平衡算法”。
在某个应用程序服务器实例中创建会话后,负载平衡器会将此会话的所有后续请求都路由到该特定实例而且只路由到该实例。现有会话的请求称为指定的或粘性请求。
HTTP 负载平衡算法
Sun Java System Application Server 负载平衡器使用粘性 Round Robin 算法对收到的 HTTP 和 HTTPS 请求进行负载平衡。给定会话的所有请求都将被发送到同一个应用程序服务器实例。使用粘性负载平衡器,会话数据将被高速缓存在单个应用程序服务器上,而不会被分布到群集中的所有实例。
因此,粘性 Round Robin 方案能够带来明显的性能优势,这些优势超过了使用纯 Round Robin 带来的更加平均分布负载的优势。
关于粘性 Round Robin 负载平衡算法
当新的 HTTP 请求发送到负载平衡器插件时,系统将基于简单的循环(共享)方案将该请求转发到某个应用程序服务器实例;随后,将通过使用 Cookie 或显式 URL 重写将该请求“粘”到此特定应用程序服务器实例上。
从粘性信息中,负载平衡器插件将首先确定请求先前被转发到的实例。如果发现该实例工作正常,负载平衡器插件会将请求转发至该特定应用程序服务器实例。因此,给定会话的所有请求都将被发送到同一个应用程序服务器实例。
负载平衡器插件使用以下方法来确定会话粘性:
基于 Cookie 的方法
在基于 Cookie 的方法中,负载平衡器插件使用一个单独的 Cookie 来记录路由信息。
显式 URL 重写方法
在显式 URL 重写方法中,粘性信息将被附加至 URL。即使 HTTP 客户机不支持 Cookie,也可以使用此方法。
负载平衡和故障转移样例应用程序
以下目录包含了用于演示负载平衡和故障转移的样例应用程序:
install_dir/samples/ee-samples/highavailability
install_dir/samples/ee-samples/failover
ee-samples
目录还包含有关设置运行样例的环境的信息。HTTP 负载平衡设置概述
使用
asadmin
工具可以在您的环境中配置负载平衡。请执行以下步骤:
- 完成“HTTP 负载平衡的要求”,包括安装和配置 Web 服务器和 Application Server 实例和(或)群集。
- 使用
asadmin
命令create-http-lb-config
创建负载平衡器配置。- 使用
asadmin
create-http-lb-ref
为要管理的负载平衡器添加对群集和独立服务器实例的引用。如果您创建了具有目标的负载平衡器配置,并且该目标是负载平衡器引用的唯一群集或独立服务器实例,则请跳过此步骤。
- 使用
asadmin enable-http-lb-server
启用负载平衡器引用的群集或独立服务器实例。- 使用
asadmin enable-http-lb-application
启用要用于负载平衡的应用程序。这些应用程序必须已部署到负载平衡器所引用的群集或独立实例上,并且已启用,可以在群集或独立实例上使用。启用应用程序以用于负载平衡与启用以使用这些应用程序是两个独立的步骤。
- 使用
asadmin
create-health-checker
创建运行状况检查器。运行状况检查器监视工作异常的服务器实例,以便在这些服务器实例重新正常工作时,负载平衡器可以向它们发送新请求。
- 使用
asadmin
export-http-lb-config
生成负载平衡器配置文件。此命令用于生成要同 Sun Java System Application Server 附带的负载平衡器插件一起使用的配置文件。
- 将负载平衡器配置文件复制到 Web 服务器的
config
目录,此目录中存储了负载平衡器插件配置文件。
为 HTTP 负载平衡配置 Web 服务器关于 Web 服务器配置
负载平衡器插件安装程序将对 Web 服务器的配置文件进行一些修改。所作的更改取决于该 Web 服务器。
注
在运行支持的 Web 服务器的计算机上,负载平衡器插件可随 Sun Java System Application Server Enterprise Edition 一起安装,也可单独安装。
有关安装过程的完整信息,请参见 Sun Java System Application Server 安装指南。
对 Sun Java System Web Server 的修改
安装程序将对 Sun Java System Web Server 的配置文件进行以下更改:
- 将以下负载平衡器插件特定的条目添加到 Web 服务器实例的
magnus.conf
文件中:
##EE lb-plugin
web_server_install_dir
Init fn="load-modules" shlib="/plugins/lbplugin/bin/libpassthrough.so" funcs="init-passthrough,service-passthrough,name-trans-passthrough" Thread="no"
Init fn="init-passthrough"
##end addition for EE lb-plugin
- 将以下特定于负载平衡器插件的条目添加到 Web 服务器实例的
obj.conf
文件中:<Object name=default>
NameTrans fn="name-trans-passthrough" name="lbplugin" config-file="web_server_install_dir/web_server_instance/config/loadbalancer.xml"
<Object name="lbplugin">
ObjectType fn="force-type" type="magnus-internal/lbplugin"
PathCheck fn="deny-existence" path="*/WEB-INF/*"
Service type="magnus-internal/lbplugin" fn="service-passthrough"
Error reason="Bad Gateway" fn="send-error" uri="$docroot/badgateway.html"
</object>
lbplugin
是唯一标识Object
的名称;web_server_install_dir/
web_server_instance/config/loadbalancer.xml
是负载平衡器要在其上运行的虚拟服务器的 XML 配置文件所在的位置。安装后,请按照“HTTP 负载平衡设置概述”中的说明配置负载平衡器。
对 Apache Web Server 的修改
在 Apache 上安装负载平衡器插件之前,请参见附录 A“编译和配置 Apache Web Server”中有关编译和配置 Apache 的信息。
安装程序所作的修改
负载平衡器插件安装程序将所需文件解压缩到 Web 服务器根目录下的
libexec
(Apache 1.3) 或modules
(Apache 2.0) 文件夹下。它将以下特定于负载平衡器插件的条目添加到 Web 服务器实例的httpd.conf
文件中:
<VirtualHost
machine_name:443>
##Addition for EE lb-plugin
LoadFile /usr/lib/libCstd.so.1
LoadModule apachelbplugin_module libexec/mod_loadbalancer.so
webserver_instance
#AddModule mod_apachelbplugin.cpp
<IfModule mod_apachelbplugin.cpp>
config-file/conf/loadbalancer.xml
locale en
</IfModule>
<VirtualHost
machine_ip_address>
webserver_instance
DocumentRoot "/htdocs"
ServerName server_name
</VirtualHost>
##END EE LB Plugin ParametersVersion 7
安装后的修改
对 Microsoft Windows 的其他修改
如果是在 Microsoft Windows 上运行 Apache,则在安装插件后,需要更改某些环境变量:
通过单击“开始”->“设置”->“控制面板”->“系统”->“高级”->“环境变量”->“系统变量”将新路径添加到 Path 环境变量中。编辑 Path 变量使其包含以下路径:
application_server_install_dir
/bin
此外,在启动 Apache Web 服务器之前,请将环境变量 NSPR_NATIVE_THREADS_ONLY 设置为 1。
在“环境变量”窗口的“系统变量”下,单击“新建”。输入以下名称和值对:
变量名:NSPR_NATIVE_THREADS_ONLY
变量值: 1
重新启动计算机。
对 Microsoft IIS 的修改
要配置 Microsoft Internet 信息服务 (IIS) 以使用负载平衡器插件,请修改 Windows Internet 服务管理器中的某些属性。Internet 服务管理器位于“控制面板”文件夹的“管理工具”文件夹中。
安装 Sun Java System Application Server 后,请执行以下修改。
- 打开 Internet 服务管理器。
- 选择要为其启用插件的 Web 站点。此 Web 站点通常命名为“默认的 Web 站点”。
- 在此 Web 站点上单击鼠标右键,并选择“属性”以打开“属性”记事本。
- 要添加新的 ISAPI 过滤器,请打开“ISAPI 过滤器”选项卡,单击“添加”,然后执行以下步骤:
- 创建并配置新的虚拟目录:
- 将
sun-passthrough.dll
文件的路径和 application_server_install_dir/bin
添加到系统的PATH
环境变量中。重新启动计算机。- 停止然后启动 Web 服务器以使新设置生效。
要停止 Web 服务器,请在此 Web 站点上单击鼠标右键,然后选择“
停止
”。要启动 Web 服务器,请在此 Web 站点上单击鼠标右键,然后选择“启动
”。接下来,在 Web 浏览器中键入以下地址,以访问此 Web 应用程序的上下文根:
http://
webserver_name/
web_application其中,webserver_name 是 Web 服务器的主机名或 IP 地址,
/
web_application 是C:\Inetpub\wwwroot\sun-passthrough\sun-passthrough.properties
文件中列出的上下文根路径。检验 Web 服务器、负载平衡器插件和 Application Server 是否运行正常。安装程序将自动配置
sun-passthrough.properties
中的下列属性。您可以更改默认值。
配置多个 Web 服务器实例
Sun Java System Application Server 安装程序不允许在单个计算机上安装多个负载平衡器插件。要在单个群集或多个群集中的单个计算机上安装多个带有负载平衡器插件的 Web 服务器,需要手动执行一些步骤来配置负载平衡器插件。
- 配置新的 Web 服务器实例以使用负载平衡器插件,如“对 Sun Java System Web Server 的修改”、“对 Apache Web Server 的修改”或“对 Microsoft IIS 的修改”所述。
- 将
sun-loadbalancer_1_1.dtd
文件从现有 Web 服务器实例的config
目录复制到新实例的config
目录中。- 要使用相同的负载平衡器配置,请将
loadbalancer.xml
文件从现有的 Web 服务器实例的config
目录复制到新实例的config
目录中。- 要使用其他负载平衡器配置,请执行以下步骤:
- 使用
asadmin create-http-lb-config
创建新的负载平衡器配置。- 使用
asadmin export http-lb-config
将新配置导出到loadbalancer.xml
文件中。- 将
loadbalancer.xml
文件复制到新 Web 服务器的config
目录中。有关创建负载平衡器配置并将其导出到
loadbalancer.xml
文件的信息,请参见“HTTP 负载平衡器配置任务”。
HTTP 负载平衡器配置任务创建 HTTP 负载平衡器配置
负载平衡器配置是定义负载平衡器的
domain.xml
文件中的命名配置。负载平衡配置非常灵活:
使用
asadmin
命令create-http-lb-config
创建配置。指定下列参数:
指定对负载平衡器的 HTTPS 请求是否会导致对服务器实例的 HTTPS 或 HTTP 请求。
有关更多信息,请参见“配置 HTTP 和 HTTPS 会话故障转移”。
检查负载平衡器配置文件
loadbalancer.xml
的更改的时间间隔。当检查检测到更改时,系统将重新装入配置文件。0 值禁用重新装入。有关更多信息,请参见“启用动态重新配置”。
指定是否为负载平衡器启用监视功能。
有关更多信息,请参见“监视 HTTP 负载平衡器插件”。
有关更多信息,请参见
create-http-lb-config
、delete-http-lb-config
和list-http-lb-configs
的文档。创建 HTTP 负载平衡器引用
当您在负载平衡器中创建对独立服务器或群集的引用时,该服务器或群集将被添加到负载平衡器控制的目标服务器和群集的列表中。仍然需要先启用所引用的服务器或群集(使用
enable-http-lb-server
),然后才能对该服务器或群集的请求进行负载平衡。如果创建了带有目标的负载平衡器配置,则系统已将该目标添加为引用。使用
create-http-lb-ref
创建引用。您必须提供负载平衡器配置名称和目标服务器实例或群集。要删除引用,请使用
delete-http-lb-ref
。要删除某个引用,必须先使用disable-http-lb-server
禁用引用的服务器或群集。有关更多信息,请参见
create-http-lb-ref
和delete-http-lb-ref
的文档。启用用于负载平衡的服务器实例
创建对服务器实例或群集的引用后,请使用
enable-http-lb-server
启用服务器实例或群集。如果在创建负载平衡器配置时使用了某个服务器实例或群集作为目标,则必须启用该服务器实例或群集。有关更多信息,请参见
enable-http-lb-server
的文档。启用用于负载平衡的应用程序
负载平衡器管理的所有服务器都必须具有同构配置,包括部署到这些服务器的相同应用程序集。部署和启用某个应用程序以便进行访问(在部署期间或部署之后发生)后,您必须启用该应用程序以进行负载平衡。如果没有为负载平衡启用应用程序,则即使已对该应用程序所部署到的服务器的请求执行了负载平衡和故障转移,也不会对该应用程序的请求执行负载平衡和故障转移。
启用应用程序时,请指定应用程序名称和目标。如果负载平衡器管理了多个目标(例如,两个群集),请在所有目标上启用该应用程序。
有关更多信息,请参见
enable-http-lb-application
的联机帮助。如果部署了新的应用程序,则还必须启用该应用程序以进行负载平衡并再次导出负载平衡器配置。
创建 HTTP 运行状况检查器
负载平衡器的运行状况检查器将定期检查所有标记为异常的已配置 Application Server 实例。运行状况检查器不是必需的,但如果没有运行状况检查器,或者禁用了运行状况检查器,则不会执行异常实例的定期运行状况检查。
负载平衡器的运行状况检查机制使用 HTTP 与应用程序服务器实例进行通信。运行状况检查器将 HTTP 请求发送给指定的 URL 并等待响应。HTTP 响应标题中的状态码在 100 到 500 之间时表示实例处于正常状态。
创建运行状况检查器
要创建运行状况检查器,请使用
asadmin
的create-http-health-checker
命令。指定下列参数:如果应用程序服务器实例被标记为异常,运行状况检查器将轮询异常实例以确定实例的状态是否已变为正常。运行状况检查器使用指定的 URL 来检查所有异常的应用程序服务器实例,以确定这些异常的应用程序服务器实例是否已返回到正常状态。
如果运行状况检查器发现某个异常实例已变为正常,该实例将被添加到正常实例列表中。
有关更多信息,请参见
create-http-health-checker
和delete-http-health-checker
的文档。正常实例的附加运行状况检查属性
create-http-health-checker
创建的运行状况检查器仅检查异常实例。要定期检查正常实例,请在导出的loadbalancer.xml
文件中设置某些附加属性。
要检查正常的实例,请设置以下属性:
通过编辑
loadbalancer.xml
文件来设置属性。例如:<property name="active-healthcheck-enabled" value="true"/>
<property name="number-healthcheck-retries" value="3"/>
如果添加了这些属性,随后编辑并再次导出了
loadbalancer.xml
文件,则必须再次将这些属性添加到该文件中,因为新导出的配置不会包含这些属性。导出负载平衡器配置文件
Sun Java System Application Server 附带的负载平衡插件使用名为
loadbalancer.xml
的配置文件。使用asadmin
工具可以在domain.xml
文件中创建负载平衡器配置。配置了负载平衡环境后,请将其导出到文件中:
- 使用
asadmin
命令export-http-lb-config
导出loadbalancer.xml
文件。导出用于特定负载平衡器配置的
loadbalancer.xml
文件。您可以指定路径和其他文件名。如果不指定文件名,则该文件将被命名为loadbalancer.xml.
load_balancer_config_name。如果不指定路径,则将在 application_server_install_dir/domains/
domain_name/generated
目录中创建该文件。要在 Windows 上指定路径,请用引号将路径引起来。例如,
“c:\sun\AppServer\loadbalancer.xml”
。- 将已导出的负载平衡器配置文件复制到 Web 服务器的配置目录。
例如,对于 Sun Java System Web Server,该位置可能为 web_server_root
/config
。Web 服务器配置目录中的负载平衡器配置文件名必须为
loadbalancer.xml
。如果您的文件使用其他名称(例如loadbalancer.xml.
load_balancer_config_name),则必须进行重命名。更改 HTTP 负载平衡器配置
如果您通过创建或删除对服务器的引用、部署新的应用程序、启用或禁用服务器或应用程序等方法来更改 HTTP 负载平衡器配置,请再次导出负载平衡器配置文件并将该文件复制到 Web 服务器的
config
目录。有关更多信息,请参见“导出负载平衡器配置文件”。负载平衡器插件将根据在负载平衡器配置中指定的重新装入时间间隔定期检查已更新的配置。在指定的时间值后,如果负载平衡器发现新的配置文件,它将开始使用该配置。
启用动态重新配置
启用动态重新配置后,负载平衡器插件将定期检查已更新的配置。要启用动态重新配置,请执行以下步骤:
在更改这些设置后,请再次导出负载平衡器配置文件并将其复制到 Web 服务器的
config
目录。如果启用了先前已禁用的动态重新配置,您还必须重新启动 Web 服务器。
禁用(停止)服务器实例或群集
在因任何原因停止应用程序服务器之前,您希望实例完成正在处理的请求。正常禁用服务器实例或群集的进程称为停止。
负载平衡器使用以下策略来停止应用程序服务器实例:
要禁用某个服务器实例或群集,请执行以下步骤:
禁用(停止)应用程序
在取消部署 Web 应用程序之前,您希望该应用程序完成正在处理的请求。正常禁用应用程序的进程称为停止。
负载平衡器使用以下策略来停止应用程序:
当您从负载平衡器引用的每个服务器实例或群集中禁用应用程序时,则在再次启用该应用程序之前,已禁用的应用程序的用户将遭受服务损失。
如果您从一个服务器实例或群集中禁用应用程序而使该应用程序在其他服务器实例或群集中保持启用状态,则用户仍可访问该应用程序。
要禁用某个应用程序,请执行以下步骤:
配置 HTTP 和 HTTPS 会话故障转移
如果 HTTP/HTTPS 会话所连接的原始应用程序服务器实例变为不可用,负载平衡器插件会将这些会话故障转移到其他应用程序服务器实例上。本节介绍了如何配置负载平衡器插件以启用 HTTP/HTTPS 路由选择和会话故障转移。
有关配置 HTTP 会话持久性的信息,请参见“配置可用性和会话持久性”。
本节包括以下主题:
关于 HTTPS 路由选择
所有收到的请求(无论是 HTTP 请求还是 HTTPS 请求)都是通过负载平衡器插件路由到应用程序服务器实例。但是,如果启用了 HTTPS 路由选择,则负载平衡器插件将仅把 HTTPS 请求转发给使用 HTTPS 端口的应用程序服务器。请注意,HTTPS 路由选择是针对新请求和粘性请求而执行的。
如果收到了 HTTPS 请求且没有正在进行的会话,负载平衡器插件将选择使用已配置的 HTTPS 端口的可用应用程序服务器实例,并将请求转发到该实例。
在正在进行的 HTTP 会话中,如果收到对同一个会话的新 HTTPS 请求,则将使用在 HTTP 会话期间保存的会话和粘性信息来路由 HTTPS 请求。新的 HTTPS 请求将被路由到处理上一个 HTTP 请求的同一服务器上,但是,是在 HTTPS 端口上进行。
配置 HTTPS 路由选择
create-http-lb-config
命令的httpsrouting
选项用于控制是为正在参与负载平衡的所有应用程序服务器打开还是关闭 HTTPS 路由选择。如果此选项设置为 False,则所有 HTTP 和 HTTPS 请求都将作为 HTTP 请求进行转发。创建新的负载平衡器配置时,请将此选项设置为 True,或者以后使用asadmin set
命令进行更改。
有关负载平衡 HTTP/HTTPS 请求的已知问题
以下内容讨论了负载平衡器中有关 HTTP/HTTPS 请求处理的限制。
配置幂等 URL
要增强已部署应用程序的可用性,请在负载平衡器所服务的所有应用程序服务器实例上将环境配置为重试失败的幂等 HTTP 请求。此选项用于只读请求(例如,重试搜索请求)。
幂等请求是一种在重试时不会在应用程序中造成任何更改或不一致的请求。在 HTTP 中,某些方法(例如 GET)是幂等的,而其他方法(例如 POST)则不是。重试幂等 URL 不能导致服务器或数据库中的值发生更改。唯一的区别在于用户收到的响应会有所不同。
幂等请求的示例包括搜索引擎查询和数据库查询。基本原则是重试不会导致数据的更新或修改。
请在
sun-web.xml
文件中配置幂等 URL。当您导出负载平衡器配置时,幂等 URL 信息将自动被添加到loadbalancer.xml
文件中。有关配置幂等 URL 的更多信息,请参见 Developer's Guide。
配置 HTML 错误页面
您可以将自己的错误页面或某个错误页面的 URL 指定为显示给最终用户。指定错误页面将会覆盖为错误报告配置的所有其他机制。
请在
sun-web.xml
文件中配置 HTML 错误页面。在导出负载平衡器配置时,系统会自动将 HTML 错误页面信息从sun-web.xml
文件添加到loadbalancer.xml
文件中。有关配置 HTML 错误页面的更多信息,请参见 Developer's Guide。
监视 HTTP 负载平衡器插件配置日志消息
负载平衡器插件使用 Web 服务器的日志机制来生成日志消息。Application Server 上的默认日志级别被设置为 Sun Java System Web Server (
INFO
)、Apache Web Server (WARN
) 和 Microsoft IIS (INFO
) 上的默认日志级别。应用程序服务器日志级别(FINE
、FINER
和FINEST
)映射到 Web 服务器上的DEBUG
级别。这些日志消息将被写入 Web 服务器日志文件,其形式为可使用脚本进行解析或可被导入电子表格以计算所需的衡量标准的原始数据。
日志消息类型
负载平衡器插件生成以下三组不同的日志消息:
负载平衡器配置器日志消息
使用幂等 URL 和错误页面设置时,将记录这些消息。
幂等 URL 模式配置的输出包含以下信息:
错误页面 URL 配置的输出包含以下信息(日志级别设置为警告):
CONFxxxx: Invalid error-url for web-module <web-module>
请求分发和运行时日志消息
在对请求进行负载平衡和分发时,将生成这些日志消息。
配置器错误消息
如果存在配置问题(例如,缺少引用的自定义错误页面),将显示这些错误消息。
配置监视
执行以下步骤可以打开负载平衡器插件日志消息:
负载平衡器插件记录以下信息:
了解监视消息
负载平衡器插件日志消息的格式如下所示:
升级应用程序关于滚动升级
要升级应用程序而不使用户遭受任何服务损失,请每次在一个服务器或群集上升级应用程序。群集以透明方式维护一个混合版本环境,用户不会察觉到正在进行升级。这种升级称为滚动升级。
只有在旧版本和新版本的应用程序兼容并且能够同时运行的情况下,才能执行滚动升级。会话信息必须兼容。可以在单个独立群集或在多个群集中执行混合模式的滚动升级。
如果应用程序发生重大更改(例如,对数据库模式的更改),则无法执行混合模式环境中的滚动升级。在这种情况下,升级时请关闭此应用程序。取消部署此应用程序,然后使用相同的名称重新部署已升级的应用程序。
在单个独立群集中进行升级
要在单个独立群集(即不与任何其他群集共享配置的群集)中升级应用程序,请执行以下步骤:
- 保存旧版本的应用程序或备份域。
要备份域,请使用
asadmin backup-domain
命令。- 关闭群集的动态重新配置(如果已启用)。
通过管理控制台:
- 将已升级的应用程序重新部署到目标
domain
中。如果使用管理控制台进行重新部署,域将自动成为目标。由于已禁用动态重新配置,因此旧应用程序将继续在群集上运行。- 使用
asadmin enable-http-lb-application
为实例启用已重新部署的应用程序。- 使用
asadmin disable-http-lb-server
禁用一个服务器实例。- 使用
asadmin export-http-lb-config
导出负载平衡器配置文件。- 将已导出的配置文件复制到 Web 服务器实例的配置目录。例如,对于 Sun Java System Web Server,其位置为 web_server_install_dir/
https-
host-name/config/loadbalancer.xml
- 请等待,直至超时到期。监视负载平衡器的日志文件以确保实例已脱机。
- 在群集中的其他实例仍处于运行状态的情况下,重新启动已禁用的服务器实例。重新启动操作将使服务器与域同步,并更新应用程序。
- 测试重新启动的服务器上的应用程序,以确保应用程序运行正常。
- 使用
asadmin enable-http-lb-server
启用服务器实例。- 使用
asadmin export-http-lb-config
导出负载平衡器配置文件。- 将配置文件复制到 Web 服务器的配置目录。
- 当所有服务器实例都包含新的应用程序并且处于运行状态时,请再次为群集启用动态重新配置。
在两个群集中进行升级
- 保存旧版本的应用程序或备份域。
要备份域,请使用
asadmin backup-domain
命令。- 关闭两个群集的动态重新配置(如果已启用)。
通过管理控制台:
- 将已升级的应用程序重新部署到目标
domain
中。如果使用管理控制台进行重新部署,域将自动成为目标。由于已禁用动态重新配置,因此旧应用程序将继续在群集上运行。- 使用
asadmin enable-http-lb-application
为群集启用已重新部署的应用程序。- 使用
asadmin disable-http-lb-server
从负载平衡器上禁用其中一个群集。- 使用
asadmin export-http-lb-config
导出负载平衡器配置文件。- 将已导出的配置文件复制到 Web 服务器实例的配置目录。例如,对于 Sun Java System Web Server,其位置为 web_server_install_dir/
https-
host-name/config/loadbalancer.xml
- 请等待,直至超时到期。监视负载平衡器的日志文件以确保群集已脱机。
- 在另一个群集仍处于运行状态的情况下,重新启动已禁用的群集。重新启动操作将导致群集与域同步,并更新应用程序。
- 测试重新启动的群集上的应用程序,以确保应用程序运行正常。
- 使用
asadmin enable-http-lb-server
启用群集。- 使用
asadmin export-http-lb-config
导出负载平衡器配置文件。- 将配置文件复制到 Web 服务器的配置目录。
- 当所有服务器实例都包含新的应用程序并且处于运行状态时,请再次为两个群集启用动态重新配置。
关于 RMI-IIOP 负载平衡和故障转移RMI-IIOP 负载平衡和故障转移的要求
Sun Java System Application Server 通过 RMI-IIOP 提供远程 EJB 引用和名称服务对象的高可用性。在使用这些功能之前,环境必须满足以下要求:
有关群集的更多信息,请参见“配置群集”。
RMI-IIOP 负载平衡和故障转移算法
Sun Java System Application Server 采用了随机算法和循环(共享)算法,用于 RMI-IIOP 路径上的远程 EJB 引用和名称服务对象的负载平衡。
在 RMI-IIOP 客户机首次创建新的
InitialContext
对象时,可用的 Application Server IIOP 端点的列表对于该客户机是随机的。对于该InitialContext
对象,负载平衡器会将查找请求和其他InitialContext
操作定向至列表中的第一个端点。如果第一个端点不可用,则使用列表中的第二个端点,依此类推。随后每次客户机创建新的
InitialContext
对象时,将轮转端点列表,从而将不同的 IIOP 端点用于InitialContext
操作。当您从通过
InitialContext
对象获得的引用中获取或创建 Bean 时,将在服务于指定给InitialContext
对象的 IIOP 端点的 Application Server 实例上创建这些 Bean。对这些 Bean 的引用包括群集中的所有 Application Server 实例的 IIOP 端点地址。主端点是与用于查找或创建 Bean 的
InitialContext
端点相对应的 Bean 端点。群集中的其他 IIOP 端点将被指定为备用端点。如果 Bean 的主端点不可用,则该 Bean 上的其他请求将故障转移到其中一个备用端点。RMI-IIOP 样例应用程序
以下目录包含用于演示通过和不通过 ACC 使用 RMI-IIOP 故障转移的样例应用程序。
install_dir/samples/ee-samples/sfsbfailover
有关通过和不通过 ACC 来运行应用程序的说明,请参见该样例附带的
index.html
文件。ee-samples
目录还包含有关设置运行样例的环境的信息。