配置WebLogic Server 9.2集群

(本文讲述如何在WebLogic Server 9.2上配置集群,以及通过Http代理方式Proxy Server来访问集群)    

预备知识

什么是Domain和Server

Domain

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

Server

Server是一个相对独立的,为实现某些特定功能而结合在一起的单元,该服务用于部署应用程序,其中代理服务还在该Server下建立。

Domain and Server的关系

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

 

负载均衡集群

高扩展型集群,即负载均衡集群技术,就是带均衡策略(算法)的服务器集群。负载均衡集群在多节点之间按照一定的策略(算法)分发网络或计算处理负载。负载均衡建立在现有网络结构之上,它提供了一种廉价有效的方法来扩展服务器带宽,增加吞吐量,提高数据处理能力,同时又可以避免单点故障。以Web访问为例,后台的多个Web服务器上面有相同的Web内容,Internet客户端的访问请求首先进入一台服务器,由它根据负载均衡策略(算法)合理地分配给某个服务器,其中服务器可以是同一台机器,也可不同机器。

WebLogic 集群的工作机制

每一个Clustered service,在每一个server上都会有一个instance,即一个replica,这些replicas集合在一起形成一个replica-aware stub。这些stubs负责客户端与相关的服务器段对象的通信,当客户端请求该service时,实际上是向stub发出请求,stub根据不同的算法调用集合中某一replica,如果调用失败,stub会检测到错误并重新调用其它的replica。Cluster支持多种算法:随机、轮循、基于性能的负载均衡的轮循(Weight-based round-robin)、根据参数值调用(Parameter-based routing)。WebLogic Cluster通过负载均衡和容错最大程度的实现了它的可伸缩性和可用性。为了提高Cluster的可伸缩性,必须保证充分利用每一个Server。WebLogic可以在不同平台、不同性能的机器上安装Server并进行Cluster,然后采用Weight-based round-robin算法达到负载均衡,从而使每一个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配置)

配置前的准备工作

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

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

机器类型

操作系统

硬件配置

角色

备注

PC

Win2003 Server

IP:90.0.12.20 PORT:7001

Administrator Server

 管理服务

PC

Win2003 Server

IP:90.0.12.20 PORT:8080

Proxy Server

 代理服务

 PC

Win2003 Server

IP:90.0.12.20 PORT:7082

Managed Server

 受管理服务

PC

Win2003 Server

IP:90.0.12.112 PORT:7084

Managed Server

 受管理服务

 

硬件配置中90.0.12.20,与90.0.12.112分别是两台不同的机器,集群也可以配置在同一台机器中。

Weblogic安装以及集群配置的操作

使用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

如果不创建CMD启动服务时,都需要手动输入用户名和密码

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

在刚才创建的域目录下的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地址)

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

一.     按默认情况安装Weblogic 9.2

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

三.     选择域源

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

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

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

 

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

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

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

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

 

七.     配置管理服务器

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

八.     配置受管理服务器

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

九.     配置集群

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

因为当前pc上的受管理服务器已被前面集群受管理

一〇.            配置计算机

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

一一.            检查Weblogic域

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

一二.            创建Weblogic域

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

一三.            正在创建域

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

一四.            编辑启动文件

在刚才创建的域目录下的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应用启动完成。

注意BEAProxy4_myCluster_ProxyServer ,代理服务web应用是weblogic自带的程序,需要修改web.xml,和weblogic.xml。

Web.xml

<!DOCTYPE web-app PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN" "http://java.sun.com/dtd/web-app_2_3.dtd">

<web-app>

       <servlet>

              <servlet-name>HttpClusterServlet</servlet-name>

              <servlet-class>

                     weblogic.servlet.proxy.HttpClusterServlet

              </servlet-class>

              <init-param>

                     <param-name>WebLogicCluster</param-name>

                     <param-value>

             90.0.12.20 :7082|90.0.12.112:7084

                     </param-value>

              </init-param>

              <init-param>

                     <param-name>DebugConfigInfo</param-name>

                     <param-value>ON</param-value>

              </init-param>

              <init-param>

                     <param-name>verbose</param-name>

                     <param-value>true</param-value>

              </init-param>

       </servlet>

 

       <servlet-mapping>

              <servlet-name>HttpClusterServlet</servlet-name>

              <url-pattern>/</url-pattern>

       </servlet-mapping>

 

       <servlet-mapping>

              <servlet-name>HttpClusterServlet</servlet-name>

              <url-pattern>*.jsp</url-pattern>

       </servlet-mapping>

 

       <servlet-mapping>

              <servlet-name>HttpClusterServlet</servlet-name>

              <url-pattern>*.htm</url-pattern>

       </servlet-mapping>

 

       <servlet-mapping>

              <servlet-name>HttpClusterServlet</servlet-name>

              <url-pattern>*.html</url-pattern>

       </servlet-mapping>

</web-app>

 

注意<param-value>元素的值是对应受管理服务的IP和port 如果多个IP必须用“|”分隔。千万不要把90.0.12.20 :7001也配置进去。

测试集群的分发功能

编写测试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共享问题测试

一.     编辑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>

 

注意 如果replicated发部不成功换成memory,因为在9.2的版本中replicated无效。8.1版本可以用。

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

三.     Session保持测试 在main,jsp中代码  如果session.set 一个属性为空,那么设置一个值,否则输出该值。

测试结果:如果http://90.0.12.20:8080/main.jsp, 通过代理连接到20的7082上,那么session为空,该属性设置一个值,这时再把20 7082关闭,那次连接http://90.0.12.20:8080/main.jsp,  这时页面结果显示在20 7082上属性的值那么session保持测试成功。

集群配置中要注意的问题

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

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

 

 

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值