配置WebLogic Server 9.2集群

（本文讲述如何在WebLogic Server 9.2上配置集群，以及通过Proxy Server来访问集群）

预备知识

什么是Domain和Server

Domain

Domain是WebLogic Server实例的基本管理单元。所谓Domain就是，由配置为Administrator Server的WebLogic Server实例管理的逻辑单元，这个单元是有所有相关资源的集合。

Server

Server是一个相对独立的，为实现某些特定功能而结合在一起的单元。

Domain and Server的关系

一个Domain 可以包含一个或多个WebLogic Server实例，甚至是Server集群。一个Domain中有一个且只能有一个Server 担任管理Server的功能，其它的Server具体实现一个特定的逻辑功能。

本文环境

• 平台：Windows 2003

• 软件：WebLogic Server 9.2

配置WebLogic Server集群

WebLogic集群的体系结构

单层混合型的集群架构（Cluster）

这种架构将所有的Web应用以及相关的服务应用全部置于集群中的单一WLS实例中，这种架构的优势在于：

• 易于管理

• 灵活的负载平衡机制

• 更强的安全控制

多层结构的集群架构（Cluster）

这种架构使用两个WLS集群，一个放置表静态内容和集群Servlet，另一个放置集群EJB。一般应用于下面这些情况：

• 在负载平衡机制需要调用集群EJB中的方法时；

• 在提供内容与提供对象的服务之间需要更大的机动性时；

• 在需要更高的系统稳定性时；

配置集群应用的必要条件

• 集群中的所有Server必须位于同一网段，并且必须是IP广播(UDP)可到达的

• 集群中的所有Server必须使用相同的版本,包括Service Pack

• 集群中的Server必须使用永久的静态IP地址。动态IP地址分配不能用于集群环境。如果服务器位于防火墙后面，而客户机位于防火墙外面，那么服务器必须有公共的静态IP地址，只有这样，客户端才能访问服务器

• 要以CLUSTER方式运行，必须有包含CLUSTER许可的LICENSE才行（从Bea网站上下载的试用版本就可以进行Cluster配置）

配置前的准备工作

在配置集群应用前要对集群的配置信息有一个良好的设计，下面就是我们这次配置的集群信息：

在同一网段内的不同机器上配置集群

机器类型

操作系统

硬件配置

角色

备注

DELL PC

Win2003 Server

IP:90.0.12.20 PORT:7001

Administrator Server

DELL PC

Win2003 Server

IP:90.0.12.20 PORT:8080

Proxy Server

DELL PC

Win2003 Server

IP:90.0.12.20 PORT:7082

Managed Server

DELL PC

Win2003 Server

IP:90.0.12.112 PORT:7084

Managed Server

使用Domain Configuration Wizard进行配置

创建新的Domain

选择“Tool Configuration Wizard”，单击“下一步”按钮

选择安装域源

选择安装“WebLogic Server”，单击“下一步”按钮

配置管理员用户名和密码

输入Weblogic管理员管理服务器（AdminServer）的用户名和密码，在此以“weblogic”作用登录管理服务器的用户名和密码，单击“下一步”按钮

配置域启动模式和JDK

选择“生产模式”和“JRockt SDK”后，单击“下一步”按钮

选择是否自定义环境和服务设置

选择“是”后，单击“下一步”按钮

配置管理服务器

输入Administrator Server的名称，监听地址，监听端口，如果需要SSL支持的话可以在“SSL enabled”后面的复选取框上打勾，配置SSL监听端口，单击“下一步”按钮

配置受管理服务器（代理服务器实际上也是一个受管理服务器）

输入Managed Server的名称，监听地址，监听端口，如果需要SSL支持的话，可以在“SSL enabled”复选框上打勾，配置SSL监听端口。可以配置多个Managed Server。单击“下一步”按钮

(注：我这台机的IP是：90.0.12.20,另一台机上要安装受管理服务器的IP地址是：90.0.12.112)

配置群集信息

单击“切换显示”，再单击“添加”，输入Cluster的名称，Multicast address组播地址（这个做什么用暂不明白），Cluster的组播地址和端口，Cluster地址可输可不输。单击“下一步”按钮

将“受管理服务器”添加到“集群”中

选择左面列表中的Managed Server，将其添加到右面的列表中，这里代理服务器不要添加到右边，单击“下一步”按钮

创建HTTP代理应用程序

选中“为群集创建Http代理”，myCluster代理服务器选择前面没有加入myCluster的ProxyServer，单击“下一步”按钮

配置计算机

在此不对计算机进行配置，单击“下一步”按钮

检查Weblogic域

在此检查前面所做的配置，如果没有问题单击“下一步”按钮

创建Weblogic域

输入要创建的域名和位置，此处域名可输入为Clust_domain，输入完成后单击“创建”按钮

正在创建域

创建无误后，单击“完成”按钮

编辑启动WebLogic服务文件

• 编辑口令文件

在刚才创建的域目录下建立boot.properties文件，内容为：

username=weblogic

password=weblogic

• 编辑启动管理服务器的文件

在刚才创建的域目录下的bin目录中创建startAdminServer.cmd，内容为：

@ECHO OFF

@REM 启动管理服务器.

start .\startWebLogic

• 编辑启动代理服务器的文件

在刚才创建的域目录下的bin目录中创建startProxyServer.cmd，内容为：

@ECHO OFF

@REM 启动代理服务器.

@REM 使用startManagedWeblogic命令启动Managed Server，它的命令格式是：

@REM startManagedWeblogic.cmd Managed Server的名称 Administrator Server地址

@REM startManagedWeblogic 受管理服务器名称 管理服务器URL

start .\startManagedWebLogic ProxyServer http://90.0.12.20:7001

• 编辑启动受管理服务器(ManagedServer_1)的文件

在刚才创建的域目录下的bin目录中创建startManagedServer_1.cmd，内容为：

@ECHO OFF

@REM 启动受管理服务器ManagedServer_1.

@REM 启动Managed Server

@REM 使用startManagedWeblogic命令启动Managed Server，它的命令格式是：

@REM startManagedWeblogic.cmd Managed Server的名称 Administrator Server地址

@REM startManagedWeblogic 受管理服务器名称 管理服务器URL

start .\startManagedWebLogic ManagedServer_1 http://90.0.12.20:7001

（注：使用startManagedWeblogic命令启动Managed Server，它的命令格式是：

startManagedWeblogic.cmd Managed Server的名称 Administrator Server地址)

在其它机器上配置受管理服务器

1. 按默认情况按装Weblogic 9.2

2. 点击“开始所有程序 BEA ProductsTools Configuration Wizard”启动Weblogic域配置向导，按默认选择，直接单击“下一步”

3. 选择域源

按默认选择，单击“下一步”

4. 配置管理员用户名和密码

输入管理员的用户名和密码，这里为：用户名-weblogic,密码-weblogic,完成后单击“下一步”

5. 配置服务器启动模式和JDK

这里选择“生产模式”，JDK选择“JRockit JDK”，完成后单击“下一步”。

6. 生定义环境和服务设置

这里选择“是”，完成后单击“下一步”。

7. 配置管理服务器

输入本机的管理服务器名称和地址以及端口号，完成后单击“下一步”。

8. 配置受管理服务器

这是一是重点，在这里设置的受管理服务器名称和IP地址以及端口号要与群集服务器上设置的一致，完成后单击“下一步”。

9. 配置集群

这里也与群集服务器配置不同，在这里不做任何处理直接单击“下一步”。

10. 配置计算机

这一步我们也不做处理，直接单击“下一步”。

11. 检查Weblogic域

检查你做的配置是否正确，完成后单击“下一步”。

12. 创建Weblogic域

输入要创建的Weblogic域名称，这里使用MultiIP_domain，完成后单击“创建”。

13. 正在创建域

稍等待创建完成后单击“完成”。

14. 编辑启动文件

在刚才创建的域目录下的bin目录中创建startManagedServer_2.cmd，内容为：

@ECHO OFF

@REM 启动受管理服务器ManagedServer_2.

@REM 启动Managed Server

@REM 使用startManagedWeblogic命令启动Managed Server，它的命令格式是：

@REM startManagedWeblogic.cmd Managed Server的名称 Administrator Server地址

@REM startManagedWeblogic 受管理服务器名称 管理服务器URL

start .\startManagedWebLogic ManagedServer_2 http://90.0.12.20:7001

启动WebLogic服务

在集群服务器上所创建的域的bin中做如下操作。

• 双击“startAdminServer.cmd”启动管理服务器

• 双击“startProxyServer.cmd”启动代理服务器

• 双击“startManagedServer_1.cmd”启动受管理服务器1

在其它受管理服务器的bin目录下做如下操作。

• 双击“startManagedServer_2.cmd”启动受管理服务器2（注意：中间会要你输入管理域的用户名和密码），启动完成后会看到如下屏幕

部署WEB应用

进入Console控制台（http://90.0.12.7001/console）。

进入console控制台后，在左边域结构树中点击“环境”前的“+”，

在展开的菜单中点击“服务器”，在右边的列表中可以看到各服务器是否正常启动。

如果正常启动则单击“部署”，再单击“锁定编辑”，再单击“安装”，选择要部署的WEB应用程序

完成后，单击“下一步”，再单击“下一步”，

选择群集“myCluster”，再选择“群集中的所有服务器”，之后单击“下一步”，再单击“下一步”，再单击“完成”。再单击左上角的“激活更改”。

启动WEB应用

进入Console控制台（http://90.0.12.7001/console）。

进入console控制台后，点击“部署”

选中列表中的应用，然后选择“为所有请求提供服务”，再单击“是”。

看到状态是“活动”就表示WEB应用启动完成。

测试集群的分发功能

编写测试WEB应用并部署

我们来编写一个简单的WEB应用，它会在控制台和浏览器上同时打印出“OK”字样，然后将这个WEB应用部署到集群中所有Managed Server上面。（代码见附件）

在这里我们将通过Apache中所带的ab包来进行并发访问的模拟测试，使用如下的命令就可以完成压力测试。

ab –n 100 –c 10 http://90.0.12.20:8080/index.jsp

ab是测试程序的名称

参数n代表请求的总数量

参数c代表并发的请求数

url为要测试压力的页面

注：使用这个命令时，一定要在系统路径中能够找到该程序，否则不能执行。

压力测试完成后，我们从Managed Server的控制台上可以看到，ManagedServer_1，ManagedServer_2都打印出了“OK”字样，这说明，在并发请求的情况下，集群能够将请求进行分发，以达到负载平衡的目的。

Session共享问题测试

1. 编辑Weblogic.xml配置文件放到WEB应用程序的WEB-INF目录下，内容如下：

<?xml version="1.0" encoding="UTF-8"?>

<wls:weblogic-web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:wls="http://www.bea.com/ns/weblogic/90" xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd http://www.bea.com/ns/weblogic/90 http://www.bea.com/ns/weblogic/90/weblogic-web-app.xsd">

<session-descriptor>

<persistent-store-type>replicated</persistent-store-type>

<sharing-enabled>true</sharing-enabled>

</session-descriptor>

<wls:context-root>/</wls:context-root>

</wls:weblogic-web-app>

2. 在IE地址栏中输入http://90.0.12.20:8080/main.jsp并回车，可以看到只有一个weblogic受管理服务器上打出了“OK”，前且可以看到页面上是显示是未登录状态。这时不要并闭IE，再在地址栏中输入http://90.0.12.20:8080/login.htm，以用户名:sky2098，密码：sky2098，登录，这里页面上你会看到已是登录状态，这时你可以随便关闭或打开ManagedServer_1或ManagedServer_2测试，只要保持有一个ManagedServer是启动状态，你的页面都会是登录状态（当然记得要去做刷新测试）。

集群配置中要注意的问题

• Admin Server只用于集群的管理，而不能参与集群事务。

• Web应用应该部署到集群上，文件的同步是由WebLogic来完成的。

附录

Weblogic Server 9.2文档 http://edocs.bea.com.cn/wls/docs92/index.html

dev2dev在线 http://dev2dev.bea.com.cn

•  《配置WebLogic Server集群》附件 - DefaultWebApp.rar

•  《配置WebLogic Server集群》附件 - 压力测试软件