weblogic 7 cluster
时间:2006-03-02 来源:滚滚尘土飞
说明:
AS(Administrator Server),管理服务器,管理着整个Domain 和Cluster,维护着config.xml。
MS1(Managed Server),被管理服务器,处理业务逻辑;
MS2(Managed Server),被管理服务器,处理业务逻辑,运行着的应用程序与MS1完全相同;
proxy:代理服务器,是一个Weblogic Server有实例,负载分发请求到MS1或MS2;
C1,C2,C3:客户机实例。
若MS1死了,业务请求由MS2来接管,客户会话状态被保留;
若MS2死了,业务请求由MS1来接管,客户会话状态被保留;
若MS1和MS2同时死了,客户请求被拒;
若proxy死了,客户请求被拒;
若AS死了,不影响业务请受理,只是不能管理Domain和Cluster了,这时只需重启动AS即可,AS会自动发现MS1和MS2,并把它们纳入管理范围;
Deploy到Cluster的EJB,JMS,JSP/SERVLET,WAR,EAR等对象都支持Load-balancing和Failover功能。
对于JNDI,由于是轻量级的存储,在整个Cluster范围内保持一致。
Server1 ip 192.168.9.158 AS MS1
Server2 ip 192.168.9.156 MS2 Proxy
1. 创建一个新的Weblogic域
创建一个Domain,命名为mydomain,管理服务器为myserver,IP地址和端口为192.168.9.158:8088;
从CMD窗口,启动Admin Server。路径为:
bea-path\user_projects\mydomain
打开weblogic控制台,在servers下面创建三个服务器:manage_server1, manage_server2, proxy,IP地址和端口分别为:192.168.9.158:8080, 192.168.9.156:8080, 192.168.9.156:80,这三个服务器的角色就是Managed Server,即被管理服务器。
在Clusters下面创建一个集群,命名为servercluster,把manage_server1, manage_server2两台主机添加为成员服务器。
在manage_server1的configuration->cluster选项页中,Replication Group 配置groupa,Preferred Secondary Group配置为groupb。
在manage_server2的configuration->cluster选项页中,Replication Group 配置groupb,Preferred Secondary Group配置为groupa。上述两项配置的意思就是,session信息互为备份。
2. 启动Managed 服务器
在Server1,在mydomain目录下,启动命令为: startManagedWebLogic manage_server1 http://192.168.9.158:8080
在Server2,在mydomain目录下,启动命令为: startManagedWebLogic manage_server2 http://192.168.9.158:8080
在Server2,在mydomain目录下,启动命令为: startManagedWebLogic proxy http://192.168.9.158:8080
3. 在集群上部署测试应用程序
可以使用bea-path\weblogic700\samples\server\src\examples\cluster\sessionrep\inmemrep
的用例。该例子可以用来测试,集群session的复制。在该目录下,使用ant命令,编译生成war,将该InMemRepClient.war部署到cluster上。具体内容可以参考该目录下的:package-summary.html
4.部署proxy Web-app 创建一个deaultProxyApp/WEB-INF目录,在在此之下创建Web.xml文件如下所示:
<!DOCTYPE web-app PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.2//EN" "http://java.sun.com/j2ee/dtds/web-app_2_2.dtd">
<web-app>
<servlet>
<servlet-name>HttpClusterServlet</servlet-name>
<servlet-class>weblogic.servlet.proxy.HttpClusterServlet</servlet-class>
<init-param>
<param-name>defaultServers</param-name>
<param-value>192.168.9.158:8080|192.168.9.156:8080</param-value>
</init-param>
<init-param>
<param-name>DebugConfigInfo</param-name>
<param-value>ON</param-value>
</init-param>
<load-on-startup>0</load-on-startup>
</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>
文件中加粗的地方要注意,其它的不用作任何改动。
weblogic.servlet.proxy.HttpClusterServlet是weblogic.jar包中自带的类。
在生产环境中,建议把DebugConfigInfo设置为OFF。
部署defaultProxyApp
选择defaultProxyApp目录,将其部署到proxy服务器上。
5. 执行4中描述的脚本,重新启动所有服务器,注意,这一步不是必须的!但BEA推荐这样做!
6. 测试群性能
http:// 192.168.9.156:80/InMemRepClient/Session.jsp
使用测试用例,可以从页面看到session信息保存在某台manage Server之上。如果将该server down, 重新访问该页面可以看到session信息被复制到另外一台server上了。证明了集群机制已配好。
相关阅读 更多 +