配置WebLogic Server 11g 集群、Session复制(Windows)

来源:互联网 发布:淘宝怎么找人刷信誉 编辑:程序博客网 时间:2024/05/16 23:55

1.    预备知识    4

2.    本文环境    5

3.    配置说明    6

3.1.    集群定义    6

3.2.    集群的好处    7

3.3.    关键功能    7

3.4.    集群架构    7

3.5.    配置集群应用的必要条件    9

3.6.    配置前的准备工作    9

4.    配置WebLogic Server 集群    11

4.1.    主控服务器配置    11

4.1.1.    使用 Configuration Wizard 进行配置    11

4.1.2.    创建新的 Domain    11

4.1.3.    选择安装域源    12

4.1.4.    指定域的名称和位置    12

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

4.1.6.    配置域启动模式和JDK    13

4.1.7.    选择可选配置    14

4.1.8.    配置管理服务器    14

4.1.9.    配置受管理服务器    15

4.1.10.    配置群集信息    16

4.1.11.    将"受管理服务器"添加到"集群"中    17

4.1.12.    创建HTTP 代理应用程序    17

4.1.13.    配置计算机    18

4.1.14.    配置向计算机分配服务器    18

4.1.15.    检查WebLogic 域配置    19

4.1.16.    正在创建域    19

4.1.17.    编辑WebLogic 服务启动文件    20

4.2.    受控服务器配置    22

4.2.1.    使用 Configuration Wizard 进行配置    22

4.2.2.    创建新的 Domain    22

4.2.3.    选择安装域源    23

4.2.4.    指定域的名称和位置    23

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

4.2.6.    配置域启动模式和JDK    24

4.2.7.    选择可选配置    25

4.2.8.    配置管理服务器    25

4.2.9.    配置受管理服务器    26

4.2.10.    配置群集信息    26

4.2.11.    配置计算机    27

4.2.12.    检查WebLogic 域配置    27

4.2.13.    正在创建域    28

4.2.14.    编辑WebLogic 服务启动文件    28

4.3.    启动WebLogic 服务    30

4.4.    将应用部署到集群上    36

4.4.1.    点击"部署"菜单    36

4.4.2.    锁定并编辑    37

4.4.3.    开始安装    37

4.4.4.    部署成功验证    41

4.4.5.    负载均衡测试    43

4.5.    关闭WebLogic 服务    44

4.5.1.    在控制台中关闭服务    44

4.5.2.    在cmd命令行下关闭服务    45

4.5.3.    按下Ctrl+C强制关闭    46

5.    Session复制    47

5.1.    HTTP会话状态复制介绍    47

5.1.1.    对JSP和Servlet提供集群支持    47

5.1.2.    实现方式    47

5.1.3.    Session复制要求条件    47

5.2.    Weblogic配置要求    48

5.2.1.    机器    48

5.2.2.    复制组    48

5.2.3.    分级服务器    48

5.2.4.    weblogic.xml部署描述配置    48

5.3.    内存复制方式    49

5.3.1.    服务器和会话对象    49

5.3.2.    复制组故障接管    50

5.3.3.    内存复制的要求    50

5.3.4.    配置内存复制    50

5.4.    内存复制配置步骤    51

5.4.1.    复制组规划    51

5.4.2.    复制组配置    52

5.4.3.    Session复制验证    54

 

 

  1. 预备知识

什么是 DomainServerMachineCluster

图1

Domain

Domain WebLogic Server 实例的基本管理单元。所谓Domain 就是,由配置为

Administrator Server WebLogic Server 实例管理的逻辑单元,这个单元是有所有相关资源

的集合。

为什么用域?

域管理的特征:

  • 对应用来说是透明的
  • 可以出于技术或业务的理由来配置、管理

WLS(WebLogic Server)域可以用来分离:

  • 开发/测试/上线的应用
  • 管理和操作的任务
  • 组织或业务分配

Server

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

服务器是执行在单一Java虚拟机(JVM)中weblogic.Server类的实例。

最多和一个WLS机器关联,占用一定数量的RAM,是多线程的。

Machine

Machine 是可以对应到服务器所在的物理硬件,可以是Unix 或non-Unix 类型,可以用来远程管理和监控,用于加强fail over 管理。

 

Cluster

Cluster 也是一个逻辑概念,用来分组用途相同的服务器实例,一个域中可以有多个集

群。集群用来实现负载均衡和容错。

 

WebLogic集群技术指通过一组服务器协同工作,在多台机器间复制应用表示层和应用逻辑层的能力,实现关键业务系统的负载分布,消除个别故障点。

 

Domain and Server 的关系

一个 Domain 可以包含一个或多个WebLogic Server 实例,甚至是Server 集群。一个

Domain 中有一个且只能有一个Server 担任管理Server 的功能,其它的Server 具体实现一个特定的逻辑功能。

 

  1. 本文环境

平台:Windows XP SP3, 4G RAMWindows 2003 Enterprise2GRAM

软件:WebLogic Server 11gR1

  1. 配置说明

    1. 集群定义

一个集群就是一组协同工作的WebLogic服务器实例。

集群提供:高可用性、负载均衡、扩展性。

集群图示:图2、图3都是集群在应用环境中的示例。

 

图2

 

 

图3

  1. 集群的好处

  • 扩展性

扩展性就是可以为应用提供更多容量的能力,在这种情况下,增加额外的服务器,而不必对主体架构进行修改。

  • 高可用性

高可用性确保了集群中一台服务器发生故障时,其他服务器可以接管工作,因此对客户端没有影响。

 

  1. 关键功能

  • 应用故障接管

当应用中一个执行任务的对象变得不可用时,另外对象可以接管并完成工作。

  • 站点故障接管

当单个站点上所有服务和应用都失败时,它们可以切换到其他站点,继续处理。

  • 服务器迁移

当一台服务器失败时,钉住的服务可以迁移到集群中其他服务器上。

  • 负载均衡

跨越多个服务器的平均任务分发与通讯。

 

  1. 集群架构

  • 通常的,应用被分隔成多个层次,每层代表了不同的功能,WebLogic对Web层、展现层、业务或对象层都提供集群支持。
  • 好架构某种程度上是主观的,但是有一些全局的考虑
    • 性能
    • 有效的状态持久性
    • 最佳的负载均衡
    • 有效的故障接管
    • 可靠的通讯
  • 有两种主要集群架构可以选择
    • 基本集群架构

基本集群架构将静态HTTP,展现逻辑,业务逻辑和对象组合在一个集群中。如图4所示。(本文配置采用的是该结构)

图4

  • 多层集群架构

Web层和业务逻辑服务可以分布在两个集群中。如图5所示。

图5

  • 何时使用多层集群架构

多层集群架构推荐给具有如下需求的Web应用:

  • 对集群化EJB方法调用的负载均衡
  • 在提供HTTP内容的服务器与提供集群对象的服务器之间实现负载均衡灵活性
  • 高可用性(更少的单点故障)
  • 更灵活的安全性
  • 基本集群架构的优劣

    基本集群架构具有如下优势:

    • 易于管理
    • 灵活的负载均衡
    • 强壮的安全性

    基本集群架构具有如下劣势:

    • 不能负载均衡EJB方法调用
    • 跨层的负载均衡可能变得不平衡
  • 多层集群架构的优劣

    多层集群架构具有如下优势:

    • 改进的负载均衡
    • EJB方法的负载均衡
    • 更高可用性
    • 改进的安全选项

    多层集群架构具有如下劣势:

    • 当展现层频繁调用业务逻辑时会制造瓶颈
    • 增加了防火墙配置复杂性

     

  1. 配置集群应用的必要条件

  • 集群中的所有 Server 必须位于同一网段,并且必须是IP 广播(UDP)可到达的
  • 集群中的所有 Server 必须使用相同的版本,包括Service Pack
  • 集群中的 Server 必须使用永久的静态IP 地址。动态IP 地址分配不能用于集群环境。如果服务器位于防火墙后面,而客户机位于防火墙外面,那么服务器必须有公共的静态IP 地址,只有这样,客户端才能访问服务器

     

  1. 配置前的准备工作

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

群信息:在两台台机器上配置集群(每台机上都要安装相同版本的WebLogic 11g 产品)。见表1。

提示:建议您的测试服务器有4G 以上的内存,否则服务器启动过程将会很漫长。

机器类型

操作系统

网络配置

角色

备注

Lenovo PC

Windows XP SP3

IP: 172.20.50.96

PORT:7001

Administrator Server

管理服务器

Lenovo PC

Windows XP SP3

IP: 172.20.50.96

PORT:8080

Proxy Server

代理服务器

Lenovo PC

Windows XP SP3

IP: 172.20.50.96

PORT:7003

Managed Server

受管理服务器

Lenovo PC

Windows XP SP3

IP: 172.20.50.96

PORT:7004

Managed Server

受管理服务器

Lenovo PC

Windows XP SP3

IP: 172.20.50.96

PORT:7005

Managed Server

受管理服务器

Lenovo PC

Windows 2003 Enterprise

IP: 172.20.50.181

PORT:7006

Managed Server

受管理服务器

Lenovo PC

Windows 2003 Enterprise

IP: 172.20.50.181

PORT:7007

Managed Server

受管理服务器

表1

 

  1. 配置WebLogic Server 集群

    1. 主控服务器配置

主控服务器在安装Window Xp的PC机下配置。

  1.  
  2.  
  3.  
  4.  
    1.  
      1. 使用 Configuration Wizard 进行配置

选择"「开始」菜单à程序àOracle WebLogicàWebLogic Server 11gR1àToolsàConfiguration Wizard"

图6

  1. 创建新的 Domain

选择"创建新的Weblogic域",单击"下一步"按钮。

图7

  1. 选择安装域源

默认选择安装"Basic WebLogic Server Domain"单击"下一步"按钮。

图8

  1. 指定域的名称和位置

输入要创建的域名和位置,此处域名输入为 MyCluster_Domain,输入完成后单击"下一步"按钮。本文安装位置为E:\study\WebLogic11g\user_projects\domains目录下。

图9

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

输入 WebLogic 管理员管理服务器(AdminServer)用户名和密码,在此以"weblogic"作用登录管理服务器的用户名,密码为"weblogic1",单击"下一步"按钮。

图10

  1. 配置域启动模式和JDK

选择"生产模式"和"JRockit SDK"后,单击"下一步"按钮。

图11

  1. 选择可选配置

选择"管理服务器","受管服务器、群集和计算机"后,单击"下一步"按钮。

图12

  1. 配置管理服务器

输入 Administrator Server 名称,监听地址(可选所有IP或者指定IP),监听端口,如果需要SSL支持的话可以在"SSL enabled"后面的复选取框上打勾,配置SSL 监听端口,单击"下一步"按钮。

图13

  1. 配置受管理服务器

注意:代理服务器实际上也是一个受管理服务器

点击"添加",输入 Managed Server 的名称,监听地址,监听端口,如果需要SSL 支持的话,可以在"SSL enabled"复选框上打勾,配置SSL 监听端口。

可以配置多个Managed Server,名称和端口都不要相同,如果IP地址在选择的下拉框中没有,可以手动填写,完成后单击"下一步"按钮。

 

图14

 

  1. 配置群集信息

单击"添加",输入Cluster 的名称My_Cluster_1,Multicast address 组播地址(用来进行集群间的状态通信)和端口7777Cluster 的各个服务器地址和端口(Cluster 地址可输可不输,本文进行了输入,地址为:"172.20.50.96:7003,172.20.50.96:7004,172.20.50.96:7005,172.20.50.181:7006,172.20.50.181:7007")。完成后单击"下一步"按钮。

 

提示:当用Configuration Wizard 创建集群时,您只能选择multicast,虽然官方文档推荐新建集群时使用unicast 消息机制;若选择unicast,您只能在Administration Console 中修改集群的配置,参考Oracle Fusion Middleware Oracle WebLogic Server Administration Console 帮助文档中的:"Create and configure clusters".

 

提示: multicast address IP 范围必须位于224.0.0.0 到 239.255.255.255 之间.

WebLogic Server 使用的multicast 默认值为 239.192.0.0. 您不能使用类似于x.0.0.1的多播地址.

 

图15

  1. 将"受管理服务器"添加到"集群"中

选择左面列表中的Managed Server,将其添加到右面的列表中,注意这里代理服务器Proxy_Server 不要添加到右边,之后单击"下一步"按钮。

图16

  1. 创建HTTP 代理应用程序

选中"创建HTTP 代理"复选框,My_Cluster_1 代理服务器选择Proxy_Server,单击"下一步"按钮。

图17

  1. 配置计算机

点击"添加",输入计算机的名称,监听地址,监听端口,单击"下一步"按钮。

图18

  1. 配置向计算机分配服务器

选择左面列表中的Admin ServerManaged ServersProxy Server,将其添加到右面的计算机下,之后单击"下一步"按钮。

图19

  1. 检查WebLogic 域配置

在此检查前面所做的配置,如果没有问题单击"创建"按钮。

图20

  1. 正在创建域

创建无误后,单击"完成"按钮

图21

  1. 编辑WebLogic 服务启动文件

  • 编辑口令文件

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

username=weblogic

password=weblogic1

在本文的机器上,该文件的存储位置是:

E:\study\WebLogic11g\user_projects\domains\MyCluster_Domain\boot.properties

 

  • 编辑启动管理服务器的文件(可选,可直接运行startWebLogic.cmd 即可)

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

@ECHO OFF

@REM 启动管理服务器.

start .\startWebLogic

在本文的机器上,该文件的存储位置是:

E:\study\WebLogic11g\user_projects\domains\MyCluster_Domain\bin\startAdminServer.cmd

 

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

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

@ECHO OFF

@REM 启动代理服务器.

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

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

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

start .\startManagedWebLogic Proxy_Server http://172.20.50.96:7001

在本文的机器上,该文件的存储位置是:

E:\study\WebLogic11g\user_projects\domains\MyCluster_Domain\bin\startProxyServer.cmd

 

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

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

@ECHO OFF

@REM 启动受管理服务 Cluster_ManagedServer_1.

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

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

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

start .\startManagedWebLogic Cluster_ManagedServer_1 http://172.20.50.96:7001

在本文的机器上,该文件的存储位置是:

E:\study\WebLogic11g\user_projects\domains\MyCluster_Domain\bin\startManagedServer_1.cmd

 

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

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

@ECHO OFF

@REM 启动受管理服务 Cluster_ManagedServer_2.

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

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

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

start .\startManagedWebLogic Cluster_ManagedServer_2 http://172.20.50.96:7001

在本文的机器上,该文件的存储位置是:

E:\study\WebLogic11g\user_projects\domains\MyCluster_Domain\bin\startManagedServer_2.cmd

 

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

在刚才创建的域目录下的 bin 目录中创建startManagedServer_3.cmd,内容为:

@ECHO OFF

@REM 启动受管理服务 Cluster_ManagedServer_3.

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

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

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

start .\startManagedWebLogic Cluster_ManagedServer_3 http://172.20.50.96:7001

在本文的机器上,该文件的存储位置是:

E:\study\WebLogic11g\user_projects\domains\MyCluster_Domain\bin\startManagedServer_3.cmd

(注:若使用 startManagedWebLogic 命令启动Managed Server,它的命令格式是:

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

 

附启动文件:

 

  1. 受控服务器配置

受控服务器在安装Window 2003 Enterprise的PC机下配置。

  1. 使用 Configuration Wizard 进行配置

选择"「开始」菜单à程序àOracle WebLogicàWebLogic Server 11gR1àToolsàConfiguration Wizard"

图22

  1. 创建新的 Domain

选择"创建新的Weblogic域",单击"下一步"按钮。

图23

  1. 选择安装域源

默认选择安装"Basic WebLogic Server Domain"单击"下一步"按钮。

图24

  1. 指定域的名称和位置

输入要创建的域名和位置,此处域名可输入为 MyCluster_Domain,输入完成后单击"下一步"按钮。本文安装位置为D:\weblogic\weblogic11g\user_projects\domains目录下。

图25

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

输入 WebLogic 管理员管理服务器(AdminServer)用户名和密码,在此以"weblogic"作用登录管理服务器的用户名,密码为"weblogic1",单击"下一步"按钮。

图26

  1. 配置域启动模式和JDK

选择"生产模式"和"JRockit SDK"后,单击"下一步"按钮。

图27

  1. 选择可选配置

选择"管理服务器","受管服务器、群集和计算机"后,单击"下一步"按钮。

图28

  1. 配置管理服务器

输入 Administrator Server 名称,监听地址(可选所有IP或者指定IP),监听端口,如果需要SSL支持的话可以在"SSL enabled"后面的复选取框上打勾,配置SSL 监听端口,单击"下一步"按钮。

图29

  1. 配置受管理服务器

注意:受管理服务器配置的名称,监听地址,监听端口要和在主控服务器配置中的一致(参见4.1.9.配置受管理服务器)。

点击"添加",输入 Managed Server 的名称,监听地址,监听端口,如果需要SSL 支持的话,可以在"SSL enabled"复选框上打勾,配置SSL 监听端口。

图30

  1. 配置群集信息

这里不做集群配置,单击"下一步"按钮。

图31

  1. 配置计算机

这里不做计算机配置,单击"下一步"按钮。

图32

  1. 检查WebLogic 域配置

在此检查前面所做的配置,如果没有问题单击"创建"按钮。

图33

  1. 正在创建域

创建无误后,单击"完成"按钮

图34

  1. 编辑WebLogic 服务启动文件

  • 编辑口令文件

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

username=weblogic

password=weblogic1

在本文的机器上,该文件的存储位置是:

D:\weblogic\weblogic11g\user_projects\domains\MyCluster_Domain\boot.properties

 

  • 编辑启动管理服务器的文件(可选,可直接运行startWebLogic.cmd 即可)

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

@ECHO OFF

@REM 启动管理服务器.

start .\startWebLogic

在本文的机器上,该文件的存储位置是:

D:\weblogic\weblogic11g\user_projects\domains\MyCluster_Domain\bin\startAdminServer.cmd

 

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

在刚才创建的域目录下的 bin 目录中创建startManagedServer_4.cmd,内容为:

@ECHO OFF

@REM 启动受管理服务 Cluster_ManagedServer_4.

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

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

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

start .\startManagedWebLogic Cluster_ManagedServer_4 http://172.20.50.96:7001

在本文的机器上,该文件的存储位置是:

D:\weblogic\weblogic11g\user_projects\domains\MyCluster_Domain\bin\startManagedServer_4.cmd

 

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

在刚才创建的域目录下的 bin 目录中创建startManagedServer_5.cmd,内容为:

@ECHO OFF

@REM 启动受管理服务 Cluster_ManagedServer_5.

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

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

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

start .\startManagedWebLogic Cluster_ManagedServer_5 http://172.20.50.96:7001

在本文的机器上,该文件的存储位置是:

D:\weblogic\weblogic11g\user_projects\domains\MyCluster_Domain\bin\startManagedServer_5.cmd

 

附启动文件:

 

  1. 启动WebLogic 服务

建议您按照顺序启动服务器,只有当管理服务器首先启动完毕后,受管服务器再启动。

启动的过程中,会让输入管理员用户名(weblogic)和密码(weblogic1),当所有服务器的控制台上出现Server started in RUNNING mode 字样时,整个集群启动完毕。

  • 启动主控服务器:
    • 双击"startAdminServer.cmd"或者"startWebLogic.cmd"启动管理服务器

图35

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

图36

 

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

图37

 

  • 双击"startManagedServer_2.cmd"启动受管理服务器2

图38

 

  • 双击"startManagedServer_3.cmd"启动受管理服务器3

图39

 

  • 启动受控服务器:
    • 双击"startManagedServer_4.cmd"启动受管理服务器4

      图40

    • 双击"startManagedServer_5.cmd"启动受管理服务器5

      图41

  • 验证集群启动
    • 在浏览器地址栏里输入http://172.20.50.96:7001/console 地址,输入用户名weblogic和密码weblogic1,进入 Weblogic服务器管理控制台页面。

      图42

      图43

    • 点击左面的域结构中的MyCluster_Domainà环境à服务器,如下图,此时在界面主区域就能看到所有server的状态,如图45

      图44

      图45

       

  1. 将应用部署到集群上

  1.  
  2.  
  3.  
  4.  
    1.  
    2.  
    3.  
    4.  
      1. 点击"部署"菜单

登录进控制台后点击左边"域结构"中的"部署"菜单,如下图

图46

此时在界面主区域可以看到已部署的应用,如下图

图47

 

  1. 锁定并编辑

点击更改中心里的"锁定并编辑"按钮,此时在界面主区域中的"安装"按钮会变成可用状态,如下图

 

图48

  1. 开始安装

点击"安装"按钮,进入部署步骤,选择要部署的文件,点击下一步按钮

图49

按照默认设置,点击下一步按钮

图50

 

选择集群的一部分进行安装,这里为被管理的服务器都进行了安装,点击下一步按钮

图51

按照默认设置,点击下一步按钮

图52

 

点击完成按钮

图53

 

点击保存按钮,界面主区域中上方显示"设置更新成功"字样

图54

 

点击左上角"更改中心"中的"激活更改"按钮,完成后,界面主区域中上方显示"已激活所有更改。不需要重新启动。"消息

 

图55

 

 

本文部署使用的例子:

 

  1. 部署成功验证

点击左面"域结构"中的"部署链接",在主界面中会显示刚刚部署成功的"ShoppingCart"工程,选择该工程左面的checkbox,点击"启动"按钮,选择"为所有请求提供服务"

图56

点击"是"按钮,进入下一页面,ShoppingCart工程的状态会显示"start running"字样,过一会,再点击左边"域结构"中的"部署"菜单,ShoppingCart工程的状态会显示"活动"字样,可以点击"活动"链接查看具体部署情况。

图57

 

在浏览器中输入http://172.20.50.96:8080/ShoppingCart/ClusterTest.jsp,页面上会显示"Cluster Test!"字样。

图58

本文在Windows 2003 Enterprise上的被管理服务器的控制台打出:Cluster Test! 在哪台被控服务器上打印,每次会不一样。

图59

ClusterTest.jsp文件内容:

<HTML>

<HEAD><TITLE>Cluster Test Page</TITLE></HEAD>

<BODY>

<%

out.println("Cluster Test!");

System.out.println("Cluster Test!");

%>

</BODY>

</HTML>

  1. 负载均衡测试

通过 Apache 中所带的ab包(只需要单个文件ab.exe 即可,本文安装了Apache2.2,ab.exe所在目录为C:\Program Files\Apache Software Foundation\Apache2.2\bin)来进行并发访问的模拟测试,使用如下的命令就可以完成压力测试。

 

ab.exe -n 100 -c 10 http://172.20.50.96:8080/ShoppingCart/ClusterTest.jsp

参数 代表请求的总数量

参数 代表并发的请求数

url 为要测试压力的地址

 

图60

压力测试完成后,我们从Managed Servers 的控制台上可以看到打印输出,ManagedServer_1,ManagedServer_2,ManagedServer_4 都打印出了"Cluster Test!"字样(这里ManagedServer_3,ManagedServer_5没有打出,不同的测试环境,哪个受管理服务器打印可能不同),这说明,在并发请求的情况下,集群能够将请求进行分发,以达到负载平衡的目的。

  1. 关闭WebLogic 服务

  2.  
    1. 在控制台中关闭服务

进入控制台,在左侧"控制台"点击"服务器"链接,在界面主区域中点击"控制"tab按钮,选择要关闭的服务器,如下图。

图61

点击"关闭"按钮,选择"当工作完成时"或者"立即强制关闭",建议您按照顺序关闭服务器,当受管理服务器和代理服务器关闭后,再关闭管理服务器。

图62

 

下图是一个受管理服务器关闭后的控制台消息。

图63

  1. 在cmd命令行下关闭服务

这里以关闭一个受管理服务器为例,关闭代理服务器和管理服务器一样,都要用到stopManagedWebLogic.cmd命令,格式为"stopManagedWebLogic.cmd 要关闭服务的名字"。打开windows的cmd命令行工具,进入172.20.50.96上的E:\study\WebLogic11g\user_projects\domains\MyCluster_Domain\bin路径,打以下命令回车:

"stopManagedWebLogic.cmd Cluster_ManagedServer_3",中间提示输入用户名和密码,这里分别是weblogic,weblogic1。关闭后如下图:

图64

  1. 按下Ctrl+C强制关闭

点击正在运行的服务器控制台,按下Ctrl+C组合键,输出几行文字后,控制台会打出"终止批处理操作吗(Y/N)? "消息,输入"Y",回车,该服务器将被强制关闭。

图65

 

 

  1. Session复制

    1. HTTP会话状态复制介绍

  2.  
    1.  
      1. 对JSP和Servlet提供集群支持

WebLogic服务器通过复制HTTP会话状态,对JSP和Servlet提供集群支持。

  1. 实现方式

  • 内存复制
  • JDBC复制
  • 文件系统复制

本文只做了"内存复制"的配置。

  1. Session复制要求条件

  • Session必须序列化

    为了支持in-memory http session复制,所有的servlet和jsp会话数据必须可序列化,实现java.io.Serializable接口。

  • 用setAttribute 修改 Session 状态

    在实现了javax.servlet.http.HttpSession的http servlet中,用HttpSession.setAttribute代替putValue方法去修改session 对象。putValue方法不建议用,同样用removeAttribute代替removeValue去删除session对象。

  • 避免大的session对象

    因为往session中存放的数据比较大时,系统的响应速度明显变慢,有时会出现内存溢出的情况。

  • 框架的使用

    在特定的框架集(frameset)中,确保只有一个框架(frame)创建和修改会话数据;必须确保只在第一个框架集的一个框架中创建会话,其他框架集访问该session。

 

  1. Weblogic配置要求

  2.  
    1. 机器

WebLogic服务器中,机器名用来指明一个受管服务器运行在一个特定的硬件上。机器定义是WebLogic选择另一个服务器作为它的会话信息备份时的一个考量因素。

  1. 复制组

复制组是集群中相关服务器的逻辑组,WLS允许你使用复制组,决定在哪里放置备份对象。WLS尝试以下方式进行session复制:

  • 如果配置过,发送备份对象给预定义次要复制组
  • 发送备份对象给不同机器
  • 避免发送备份对象给同一个复制组中的服务器
  1. 分级服务器

WebLogic服务器对集群中的服务器分级,以决定哪个服务器作为备份:

图66

 

  1. weblogic.xml部署描述配置

会话持久性通过weblogic.xml部署描述符文件中的<session-descriptor>元素配置的,每种持久性方法都有自己的配置参数集。

 

  1. 内存复制方式

  2.  
    1. 服务器和会话对象

WLS可以复制HttpSession对象和

有状态会话EJB,会话对象仅存在两

台服务器上,称作主要服务器和次

要服务器。次要服务器由复制组和机

器定义决定,主要对象创建后,次要

对象马上被创建。如右图所示

 

 

 

 

 

 

 

 

 

 

图67

主要服务器失败,使得备份对象成为主要对象,如下图。

图68

  1. 复制组故障接管

图69

  1. 内存复制的要求

  • 来自同一个客户端的后续请求必须访问同一个主要对象
  • 为了使用HTTP会话状态内存复制,客户端必须使用下面方法之一访问集群:
    • 负载均衡硬件(WLS知晓)
    • Web服务器集合,或单个Web服务器,带有WebLogic代理插件(配置相同)
    • 配置有HTTPClusterServlet的WebLogic服务器(本文采用方式)
  1. 配置内存复制

  • 配置代理服务器(如果适用)
  • 配置复制组和/或机器(可选)
  • 在weblogic.xml部署描述符中指定持久类型

<persistent-store-type>replicated_if_clustered</persistent-store-type>

 

  1. 内存复制配置步骤

本文是在上面配置好集群的基础上做内存session复制,其中代理服务器和机器已经配置好了,下面主要做复制组的配置和weblogic.xml的配置。

  1.  
    1. 复制组规划

复制组规划图:

 

 

 

 

 

 

 

 

图70

复制组和服务器的分配:

Server

Replication Groups

Preferred secondary replication group

ManagedServer_1

MyGroupA

MyGroupB

ManagedServer_2

MyGroupA

MyGroupB

ManagedServer_3

MyGroupB

MyGroupA

ManagedServer_4

MyGroupA

MyGroupB

ManagedServer_5

MyGroupB

MyGroupA

表2

如果一个客户端连接到服务器ManagedServer3并创造一个HTTP会话状态,按照WebLogic选作备份服务器对集群中服务器的分级,下面是复制该session的优先级:

优先级1:ManagedServer4,因为它们处在不同的机器上,并且它是ManagedServer3的预定义首选次级组成员

优先级2:ManagedServer1,ManagedServer2,它是ManagedServer3的预定义首选次级组成员,虽然在一台机器上。

优先级3:ManagedServer5,它和ManagedServer3不在一台机器上,虽然同在一个复制组中。

 

  1. 复制组配置

  1. 启动weblogic

    启动weblogic管理服务器、代理服务器。

  2. 登陆http://172.20.50.96:7001/console进入控制台,点击左边"域结构"中的"环境à服务器"菜单。

    图71

     

  3. 点击一个被管理服务器名称的链接,这里选择"Cluster_ManagedServer_1",进入Cluster_ManagedServer_1的设置页面,点击"集群"tab按钮,并点击左上角的"锁定并编辑"按钮,如下图:

    图72

  4. 在复制组后面的文本框中输入"MyGroupA",首选次级组后面的文本框中输入"MyGroupB"。

    图73

  5. 点击"保存"按钮,保存成功后,点击画面左上角的"激活更改"按钮,激活成功后如下图所示:

    图74

     

    按照"表2"中的复制组和服务器的分配,以同样地方式设置其他被管理服务器。

    1. Session复制验证

  6. 启动被管理服务器Cluster_ManagedServer_3,Cluster_ManagedServer_4,在浏览器中输入http://172.20.50.96:8080/ShoppingCart/,进入购物商店界面:

    图75

  7. 点击"Go Shopping"链接进入购物界面

    图76

     

  8. 购物两次(买了价格4.99,6.99两种商品),返回首页,点击"View Shopping Cart"链接进入购物车页面,查看已购买的商品

    图77

     

  9. 被管理服务器Cluster_ManagedServer_3控制台输出内容

图78

 

  1. 启动被管理服务器Cluster_ManagedServer_1。

在Cluster_ManagedServer_3停掉后,Cluster_ManagedServer_4中session对象的状态会由Secondary State变成Primary State,现在Cluster_ManagedServer_1用作次要服务器,请参见本文"5.3.1服务器和会话对象"一节。

图79

 

  1. 停掉管理服务器Cluster_ManagedServer_3

    图80

  2. 继续购物

    本次购买价格"15.99"的商品,并返回购物车页面查看已购买的商品:

    图81

原来购买的商品仍在购物车里,证明session已经成功复制,因为商品信息是保存在session中。

  1. 被管理服务器Cluster_ManagedServer_4已经接管原来的web请求,控制台输出内容

    图82

     

  2. 停掉管理服务器Cluster_ManagedServer_4

    图83

  3. 继续购物

    本次购买价格"199.99"的商品,并返回购物车页面查看已购买的商品

    图84

原来购买的商品仍在购物车里,证明第二次session已经成功复制,session对象由服务器Cluster_ManagedServer_4复制到服务器Cluster_ManagedServer_1中。

 

  1. 被管理服务器Cluster_ManagedServer_1控制台输出内容

图85

0 0
原创粉丝点击