首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 网站开发 > Web前端 >

Weblogic集群概念跟配置

2012-10-31 
Weblogic集群概念和配置? Administrator Server定义一管理服务器是用来管理配置域的中心点,一般来说,管理

Weblogic集群概念和配置

?
Administrator Server定义一
管理服务器是用来管理配置域的中心点,一般来说,管理服务器上是不部署应用程序的(应用程序应该部署到被管理服务器上:Managed Server),而是用来统一管理、配置、监控被管理服务器以及部署应用程序到被管理服务器上。一个域中有且只有一台管理服务器,管理服务器和域是一对一的。

Administrator Server定义二
在每个域中,只有一个 WebLogic Server 实例可充当管理服务器 : 此服务器实例可配置、管理和监视域中所有其他被管理服务器实例和资源。每个管理服务器只管理一个域。如果一个域中包含多个群集,则域中的每个群集都具有相同的管理服务器

?

?Administrator Server图示


Weblogic集群概念跟配置

?

Managed Server定义一
被管理服务器是用来部署运行各种应用程序的。一个域中有一台或多台被管理服务器

Managed Server定义二
在生产环境中,域由一个管理服务器与多个被管服务器组成。在启动这个域的被管服务器时,首先必须先启动管理服务器,被管服务器启动时,会被命令从管理服务器获得配置信息。这样,管理服务器就成为整个域的配置控制中心。一个域只能有一个活动的管理服务器。被管服务器和管理服务器是多对一的,并且被管服务器由管理服务器统一管理

Managed Server图示

?


Weblogic集群概念跟配置

Machine
机器是物理上的概念,代表一台运行WebLogic应用服务器的实在的机器,包括其IP地址等信息。一个域中可以包括多台机器。

?

?

?代理

l?????? 集群由代理来实现负载均衡。通过将请求转发到不同的管理服务器上来实现。

l?????? 代理是用来分发用户请求,代理可以硬件设备也可以是软件Web服务器,。一般来说硬件代理的性能强大些,而且稳定性也优于软件代理。

l?????? 硬件带来的厂家主要有:F5 Networks、Radware、array,浪潮、趋势等

l?????? 软件代理主要有:IIS、Apache、weblogic等HTTP服务器。

?


Weblogic集群概念跟配置

Weblogic集群概念跟配置

创建集群

本示例创建了一个weblogic集群,其中有一个管理服务器,两个被管服务器,被管理服务器在两台机器上,采用Weblogic Proxy作为代理。

部署图示(物理视图)


Weblogic集群概念跟配置

部署图示(逻辑视图)


Weblogic集群概念跟配置

部署(IP,PORT)


Weblogic集群概念跟配置

创建集群步骤一

?

创建集群步骤二

?

创建集群步骤三


Weblogic集群概念跟配置

创建集群步骤四


Weblogic集群概念跟配置

??
Weblogic集群概念跟配置
?
Weblogic集群概念跟配置
?
Weblogic集群概念跟配置
?
Weblogic集群概念跟配置
?
Weblogic集群概念跟配置
??
Weblogic集群概念跟配置

?启动管理服务器
(1) C:\> cd C:\bea\user_projects\domains\myclusterdomain2008
(2) C:\> startWeblogic.cmd

启动代理服务器

登录控制台,创建一个名为ProxyServer的管理服务器

?

启动被管服务器(本地)

?

启动109.52.27.128上的managed server,在109.52.27.128机器上

(1)?C:\> cd C:\bea\user_projects\domains\myclusterdomain2008

(2) C:\> startManagedWebLogic.cmd new_managedServer_1 http://109.52.27.128:7001(managedserver名称,要去注册的adminserver的地址)

?

启动被管服务器(远程)

简单地说需要先把NodeManager注册到AdminServer上,然后AdminServer才能管理远程的NodeManager。具体步骤如下:


(1) D:\bea92\weblogic92\server\bin>setwlsenv
-Start WLST at the remote Machine to run nmEnroll command
(2) D:\bea92\weblogic92\server\bin>java weblogic.WLST
Initializing WebLogic Scripting Tool (WLST) ...
(3) wls:/offline> connect()
Note:Give the user name and password for the Admin server which located on Machine A:
Please enter your username [weblogic] :weblogic
Please enter your password [weblogic] :
Please enter your server URL [t3://localhost:7001] :t3://10.128.23.111:7001
Connecting to t3://10.128.23.111:7001 with userid weblogic ...
S?ssfully connected to Admin Server 'AdminServer' that belongs to domain 'Nodemanager_domain'.
Warning: An insecure protocol was used to connect to the server. To ensure on-the-wire security, the SSL port or Admin port should be used instead.
(4) Run The nmEnroll Command:
wls:/Nodemanager_domain/serverConfig> nmEnroll(r'C:\bea9.2\weblogic92\common\nodemanager')
Enrolling this machine with the domain directory at C:\bea9.2\weblogic92\common\
nodemanager ...
S?ssfully enrolled this machine with the domain directory at C:\bea9.2\weblogic92\common\nodemanager.
wls:/Nodemanager_domain/serverConfig>
(5) -Done. Now start the Nodemanager .

?

部署代理应用

(1) 在Proxy server 上部署defaultProxy代理应用

(2) 先拷贝该应用到C:\bea\user_projects\domains\myclusterdomain2008\applications目录下,系统自动发布到myserver管理服务器下,使用控制台将该应用发布到Proxy Server服务器下。

?

代理的配置-web.xml

?

代理的配置-weblogic.xml

?

部署应用app

先拷贝该应用到C:\bea\user_projects\domains\myclusterdomain2008\applications目录下,系统自动发布到myserver管理服务器下,使用控制台将该应用发布到机器所有相关的被管理服务器下。

?

测试负载均衡

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

(2)? ab -n 100 -c 10 http://109.52.27.128:7000/defaultWebApp/index.jsp

(3)? ab是测试程序的名称

(4)? 参数n代表请求的总数量

(5)? 参数c代表并发的请求数

(6)? url为要测试压力的页面

?

成功标志

Ab后台输出

l?????? Percentage of the reqsts served within a certain time (ms)

l???????? 50%??? 156

l???????? 66%??? 187

l???????? 75%??? 187

l???????? 80%??? 203

l???????? 90%?? 2609

l???????? 95%?? 2937

l???????? 98%?? 3000

l???????? 99%?? 3031

l??????? 100%?? 3031 (longest reqst)

Percentage of the reqsts served within a certain time (ms)是指相应时间内完成的请求的百分比,比如第一行指在12655ms的时间差内完成了50%的请求的响应。

在两台机器的ManagedServer的控制台都打出了index.jsp的执行语句结果:ok

附:index.jsp内容

l?????? <%

l?????? out.println("OK");

l?????? System.out.println("OK");

l?????? if(session.getAttribute("session name")==null){

l?????? session.setAttribute("session name","session val");

l?????? out.println("session val is null ,set it "+session.getAttribute("session name"));

l?????? }else{

l???????????? out.println("session val is set :"+session.getAttribute("session name").toString());

l???????????? }

l?????? %>

?

Session 复制

l?????? 由于集群环境中,用户访问的请求在不同的被管理服务器之间不停的切换,而用户访问又需要保持状态(Session),这就要求Session可以穿梭于被管服务器之间,就是各个被管服务器上的Session是一致的,这样用户才感觉不到请求的切换。

l?????? 集群环境Session的一致性使用了Session复制的技术。

l?????? 要求一: Servlets must use either setAttribute() or removeAttribute() to change the session object. If you use other set methods to change objects within the session, WebLogic Server does not replicate those changes.

l?????? 要求二: In order to support in-memory replication for HTTP session states, all servlet and JSP session data must be serializable. If the servlet or JSP uses a combination of serializable and non-serializable objects, WebLogic Server does not replicate the session state of the non-serializable objects.

l?????? 要求三:不是硬性要求,而是考虑到性能的因素,最好不要在Session里放置大对象。

l?????? 实现方法:

在应用webapp的weblogic.xml中添加

<session-descriptor>

?????? <session-param>

????????????? <param-name>PersistentStoreType</param-name>

????????????? <param-val>replicated</param-val>

?????? </session-param>

</session-descriptor>

注: 将持久性存储方法设置为以下某个选项:

memory - 禁用持久性会话存储。

replicated - 与 memory 相同,但会话数据将在群集服务器之间复制。

replicated_if_clustered – 如果 Web 应用程序部署于群集服务器上,则会复制生效的 persistent-store-type。否则,memory 为默认值。

sync-replication-across-cluster – 复制将在群集内同步发生。

async-replication-across-cluster – 复制将在群集内异步发生。

file - 使用基于文件的持久性(另请参阅 persistent-store-dir)。

jdbc - 使用数据库存储持久性会话。(另请参阅 persistent-store-pool。)

cookie – 所有会话数据都存储于用户浏览器的 cookie 中。

Session复制测试

先访问:

http://109.52.27.128:7003/defaultWebApp/index.jsp

OK session val is null ,set it session val

在访问:

http://109.52.27.128:7003/defaultWebApp/index.jsp

热点排行