<!--<a accesskey="2" href="javascript:OpenWindowIndex();" onmouseout="window.status=''; return true" title="Open Index in new window"> <img id="LongDescNotReq5" src="/global_resources//images/doc_nav_index.gif" border="0" alt="Open Index in new window" /></a>--> <!--<a href="../pdf/cluster.pdf" target="pdf"><img id="LongDescNotReq6" src="/global_resources/images/doc_nav_pdf.gif" width="59" height="44" alt="View as PDF - New Window" title="View as PDF - New Window" border="0" /></a>--> <!--<a href="http://www.adobe.com/products/acrobat/alternate.html" target="_blank"><img id="LongDescNotReq7" src="/global_resources/images/get_reader.gif" width="52" height="44" alt="Get Adobe Reader - New Window" title="Get Adobe Reader - New Window" border="0" /></a>-->
设置 WebLogic 群集
下列部分包含了配置 WebLogic Server 群集的准则和说明:
开始之前
群集实现过程
开始之前
本部分简要讲述了设置 WebLogic Server 群集的前提任务和信息。
获取群集许可
群集的 WebLogic Server 实例的安装必须具有有效的群集许可。如果您没有群集许可,则请与 BEA 销售代表联系。
了解配置过程
如果您大致了解群集配置过程以及如何完成配置任务,则本部分中的信息对您最有帮助。
有关 WebLogic Server 中的可用配置工具以及它们所支持任务的信息,请参阅了解群集配置。
确定群集架构
确定什么样的群集架构最能满足您的需求。主要的架构决策包括:
应该将所有应用程序层组合在一个群集内,还是应该将应用程序层分隔在不同的群集内?
如何在群集中的服务器实例之间平衡负载?您将:
使用基本 WebLogic Server 负载平衡,
实现第三方负载平衡器,还是
将应用程序的 Web 层部署在一个或多个次级 HTTP 服务器上并向其代理请求?
是否应该定义带有一个或多个防火墙的 Web 应用程序非军事化区(De-Militarized Zone,简称 DMZ)?
确定计划在其中安装 WebLogic Server 的一个或多个计算机(在本部分中通篇称这样的计算机为“主机”)并确保它们具有所需的资源。WebLogic Server 允许您在单独的、非多宿主计算机上设置群集。这种新功能对于演示环境或开发环境非常有用。
注意:
不要在具有动态分配的 IP 地址的计算机上安装 WebLogic Server。
多 CPU 计算机上的 WebLogic Server 实例
BEA WebLogic Server 对于可驻留于群集中的服务器实例数没有内置的限制。一些大型的多处理器服务器(如 Sun Microsystems, Inc. Sun Enterprise 10000)可以承载非常大的群集或者多个群集。
大多数情况下,按照每两个 CPU 一个 WebLogic Server 实例的方式进行部署,WebLogic Server 群集的可伸缩性最好。但是,您应该使用计划的所有容量对带有目标 Web 应用程序的真正部署进行测试,以确定服务器实例的最佳数量和分布。有关详细信息,请参阅“WebLogic Server 性能及调整”中的“在多 CPU 计算机上运行多个服务器实例时要注意的性能事项”。
检查主机计算机的套接口读取器实现
为了获得最佳的套接口性能,请对 WebLogic Server 主机计算机进行配置,使其使用面向您的操作系统的本地套接口读取器,而不要使用纯 Java 实现。要了解原因,以及有关配置本地套接口的说明或优化纯 Java 套接口通信的说明,请参阅使用 IP 套接口的端到端通信。
在不联网的 Windows 计算机上设置群集
如果您希望在单独的、不联网的 Windows 计算机上演示 WebLogic Server 群集,则必须强制 Windows 加载 TCP/IP 堆栈。默认情况下,如果 Windows 不检测物理网络链接,则不会加载 TCP/IP 堆栈。
要强制 Windows 加载 TCP/IP 堆栈,请使用“How to Disable Media Sense for TCP/IP in Windows”(网址为 http://support.microsoft.com/default.aspx?scid=kb;en-us;239924)中的说明禁用 Windows 媒体传感功能。
标识名称和地址
在群集配置过程中,您要为群集中的服务器实例提供地址信息 – IP 地址或 DNS 名称和端口号。
有关群集内通信的信息,以及它如何实现负载平衡和故障转移的信息,请参阅群集中的 WebLogic Server 通信。
设置群集时,必须提供下列内容的位置信息:
管理服务器
受管服务器
多播位置
请阅读下面的部分,了解有关必须提供的信息以及影响资源标识方法的因素的解释。
避免监听地址问题
配置群集时,可以使用 IP 地址或 DNS 名称指定地址信息。
DNS 名称还是 IP 地址?
决定使用 DNS 名称还是 IP 地址时,要考虑群集的用途。对于生产环境,通常建议使用 DNS 名称。在下列情况下使用 IP 地址可能会造成转换错误:
通过将单个服务器实例的地址绑定到 DNS 名称,可以避免转换问题。确保环境中防火墙两侧的服务器实例的 DNS 名称相同,不要使用同时也是网络上某个 NT 系统名称的 DNS 名称。
有关使用 DNS 名称而不使用 IP 地址的详细信息,请参阅防火墙注意事项。
如果内部和外部 DNS 名称不同
如果 WebLogic Server 实例的内部和外部 DNS 名称不同,则对于该服务器实例请使用 ExternalDNSName 特性来定义该服务器的外部 DNS 名称。在防火墙之外,ExternalDNSName 应转换为服务器的外部 IP 地址。如果客户端正在基于默认通道和 T3 访问 WebLogic Server,则请不要设置 ExternalDNSName 特性,即使 WebLogic Server 实例的内部和外部 DNS 名称不同也不要设置。
如果为生产环境中的群集明确定义群集地址,则请将群集地址指定为映射到群集中每个 WebLogic Server 实例的 IP 地址或 DNS 名称的 DNS 名称。
如果将群集地址定义为 DNS 名称,则不会在群集地址中指定群集成员的监听端口 – 将假设群集中的每个受管服务器都具有相同的监听端口号。因为群集中的每个服务器实例都具有唯一的地址和监听端口组合,所以如果群集地址是 DNS 名称的话,群集中的每个服务器实例则必须都拥有:
唯一的地址和
相同的监听端口号
当客户端通过提供群集 DNS 名称获取初始 JNDI 上下文时,weblogic.jndi.WLInitialContextFactory 会获取映射到该 DNS 名称的所有地址的列表。此列表由 WebLogic Server 实例缓存,新的初始上下文请求将通过循环法算法使用该缓存列表中的地址得以满足。如果该缓存列表中的某个服务器实例不可用了,则会将其从该列表中删除。只有当服务器实例无法访问其缓存中的任何地址时,该地址列表才会在 DNS 服务中刷新。
使用缓存的地址列表可以避免仅依赖于 DNS 循环法的问题。例如,DNS 循环法会一直使用已经映射到域名的所有地址,而不管这些地址是否可以访问。通过缓存该地址列表,WebLogic Server 可以删除不可访问的地址,因此对于新的初始上下文请求不会重复连接失败。
注意:
管理服务器不应该参与群集。请确保管理服务器的 IP 地址不会包括在群集范围的 DNS 名称中。有关详细信息,请参阅管理服务器注意事项。
为开发和测试环境明确定义群集地址
如果明确定义在开发环境中使用的群集地址,则可以按照上一部分所述,对于该群集地址使用群集 DNS 名称。
另外,您还可以将群集地址定义为包含群集中每个受管服务器的 DNS 名称(或 IP 地址)和监听端口的列表,如下面的示例所示:
如果群集在一个计算机上运行,则请在 /bea 目录下面安装一个 WebLogic Server 用于所有群集实例。
对于远程的联网计算机,请在每台计算机上安装相同版本的 WebLogic Server。每台计算机:
必须具有永久分配的静态 IP 地址。您不能在群集环境中使用动态分配的 IP 地址。
必须可由客户端访问。如果服务器实例位于防火墙后面,客户端位于防火墙前面,每个服务器实例则都必须拥有可由客户端访问的公共 IP 地址。
必须位于相同的局域网(local area network,简称 LAN)上并且必须可以通过 IP 多播访问。
注意:
不要使用共享文件系统和一个安装在不同计算机上运行多个 WebLogic Server 实例。使用共享文件系统会为群集带来单争端点。所有服务器实例必须竞争来访问该文件系统(可能会写入不同的日志文件)。而且,如果共享文件系统失败的话,可能无法启动群集的服务器实例。
创建群集的域
有多种方法可用于创建群集的域。有关列表,请参阅配置群集的方法。
有关使用下列方法创建群集的说明:
Configuration Wizard,首先请参阅“Creating WebLogic Domains Using the Configuration Wizard”中的 Creating a New WebLogic Domain 了解创建域的说明,然后参阅 Customizing your Domain 了解配置群集的说明。