WebLogic部署集群和代理服务器

WebLogic部署集群和代理服务器

 

应公司要求,最近在学习weblogic集群这块的知识,下面我把我这几天学到的,以及过程当中遇到的问题及如何解决的,分享给你们。首先,weblogic是Orcale公司的一款产品,至于其做用,我想就不用我说了。可是关于weblogic里面的几个专业名词,我想仍是有必要去说一下的。html

 

1.Serverjava

用过tomcat的朋友应该清楚,当咱们有多个项目部署在同一个tomcat服务器下的时候,咱们只须要启动这个tomcat就能够根据目录的不一样,访问这些应用,此时咱们用的端口号不须要改变。在weblogic服务器中,一个server同等于一个tomcat。首先咱们在建立一个server的时候须要给它指定一个ip和端口(这个ip能够是一台远程机器的ip)。建立好server之后,咱们就能够将项目部署在其中了。若是咱们有多个项目,而且我但愿每一个项目能对应不一样的端口,那么咱们就能够经过建立多个server来实现。有时候咱们称server为'节点',因此之后听到别人说节点的时候也不要茫然,说的就是它了。web

 

2.Clustertomcat

这个,就是咱们本文要讲的重点,集群。按照我我的的理解,集群就是把具备相同应用的一些server,放在一块儿,统一管理。举个很简单的例子,就是我如今有项目,我分别放在三个不一样的server里面(先别管我为何放三个不一样的server中)。那么问题来了,我项目要有改动了怎么办?分别去各自的server中从新部署?别开玩笑了,万一不是三个是十个呢?万一不是在同一台机器上呢(前面说了,能够是一台远程机器)?服务器

咱们带着这个问题再来看一下集群,放在一块儿....统一管理....并发

如今明白了吧,这就是集群给咱们带来的便利,将这些server加入到同一个集群当中,若是项目有变更的话,咱们只须要在部署项目的时候,经过集群去部署,那么weblogic会自动帮咱们将应用分配到各个子节点中。app

 

3.domaindom

domian咱们有时候也会把它称做为'域',他就至关于一个大的容器,里面能够存放不少server,其中有一个默认的server,它会随着域的启动而启动。有一点咱们必需要清楚,就是当你想要启动某个domain下的server的时候,必须先启动这个domain。Cluster和domain之间的关系也差很少如此,总之呢,先有domain再谈其余。若是还不理解,没有关系,看完下面这幅图,我想你大概也就明白了。jsp

 

到这里我想应该都清楚什么是集群,以及集群的做用了吧。接下来,我给你们讲一下,通常何时须要用到集群。工具

不知你们是否还在疑惑,前面,为何我说要把同一个项目,分别部署到多个server中呢?其实这样作的目的,是为了减轻服务器的压力,当一个web项目并发访问人数过多的时候,可能会形成服务器压力过大而崩溃,若是能将用户均匀的分散到多个服务器上,显然可以很好解决这个问。若是想让用户的访问分散到各个服务器,同时又不让客户端察觉,除了用Cluster来同步应用之外,这里咱们还须要用到另外一个技术,就是代理,代理服务器只有一个,用户若是要访问应用,只须要访问代理服务器就能够了,然而将用户分配至各个server的应用上的工做,则由代理来作。

 

有了以上基础,下面我将正式教你们部署集群和代理。

就拿上面的那幅图来举例子。假设我如今有个shop应用,我须要把它分别部署在个不一样的机子上,一台IP为100,另外一台IP是133。在这里,我把代理服务器和集群单独放在另外一台机子上IP为125。咱们把这个125:7001节点称之为管理节点,100:7100和133:7200为受管服节点。

首先先建立一个125:7001的domian(提示若是没有多台机子能够在同一台机子建立多个domain测试)

 

 

 

 

 

配置完管理管理服务器以后,咱们来建立对应的两个子节点的domain。

前面的步骤都是同样的。

 

后面直接下一步,下一步。

 

这样第一个字节点就配好了,第二子节点也是这样配,这里我就再也不重复去说了。此时启动服务器,登录控制台,就是下面这个样子了,图中我是建了3个子节点。

 

 

再说一下经过集群配置数据源和部署应用。这里我只是简单说一下与传统方式配置数据源和部署应用的不一样之处。若是对传统的部署方式不了解,能够看我写的另一篇专门讲关于数据源配置和应用部署的文章:

 

配置应用的时候也是如此,注意选择集群。配置完以后呢,集群这一块基本上就结束了。哦对,还得说一下如何启动子服务。

首先咱们须要启动命令行工具,运行-cmd

而后将目录切换到adminDaomain目录下

执行如上命令:startManagedWebLogic.cmd + 受管服务名(子) + 管理者IP:端口

等待片刻,直到命令行末端出现RUNNING表示子服务启动成功

 

接下来,咱们来讲一下设置代理。

咱们先建立一个代理应用,这里讲取名为defalutProxy

 

咱们只须要在web-inf下建立两个xml文件就能够了。web.xml和weblogic.xml

 

web.xml

复制代码
 1 <?xml version="1.0" encoding="UTF-8"?>
 2  <web-app> 
 3  <init-param>   
 4      <param-name>DebugConfigInfo</param-name>   
 5      <param-value>ON</param-value>  
 6  </init-param> 
 7  <servlet>   
 8      <servlet-name>HttpClusterServlet</servlet-name>   
 9      <servlet-class>weblogic.servlet.proxy.HttpClusterServlet</servlet-class>   
10  <init-param>    
11      <param-name>WebLogicCluster</param-name>    
12      <param-value>
13     192.168.0.100:7100|192.168.0.133:7200  <!-- 根据我的状况将此处改成本身设置的子节点IP和端口  -->
14     </param-value>  
15  </init-param>   
16  <init-param>   
17     <param-name>DebugConfigInfo</param-name>    
18     <param-value>ON</param-value>  
19  </init-param>  
20  <init-param>    
21      <param-name>verbose</param-name>     
22      <param-value>true</param-value>   
23  </init-param>  
24  </servlet>
25  
26  <servlet-mapping>  
27     <servlet-name>HttpClusterServlet</servlet-name>  
28     <url-pattern>/</url-pattern> 
29  </servlet-mapping>   
30  <servlet-mapping>   
31     <servlet-name>HttpClusterServlet</servlet-name> 
32     <url-pattern>*.jsp</url-pattern> 
33  </servlet-mapping>   
34 <servlet-mapping>   
35     <servlet-name>HttpClusterServlet</servlet-name>  
36     <url-pattern>*.htm</url-pattern> 
37  </servlet-mapping>   
38  <servlet-mapping>   
39     <servlet-name>HttpClusterServlet</servlet-name> 
40     <url-pattern>*.html</url-pattern>
41  </servlet-mapping> 
42  </web-app>
复制代码

 

weblogic.xml

1 <!DOCTYPE weblogic-web-app PUBLIC "-//BEA Systems, Inc.//DTD Web Application 8.1//EN" "http://www.bea.com/servers/wls810/dtd/weblogic 810-web-jar.dtd"> 
2 <weblogic-web-app> 
3     <context-root>/</context-root> 
4 </weblogic-web-app> 

 

建立好代理应用以后,咱们再返回weblogic 125:7100控制台,将应用部署到adminserver中。

 

 

 

后面只须要下一步下一步就能够了,很简单。代理应用的部署,与普通应用部署没什么区别。

如今,咱们集群和代理通通部署好了,咱们就该来测试一下效果了。

怎么测试呢?很简单。就像日常访问web应用那样访问就行了。若是分别部署在不一样server中的项目都能正常访问,那说明集群这块就完全OK了。至于代理嘛,,你就假设你管理节点里面也部署了这个项目(事实上没有不,你是知道的),而后咱们就像访问其余两个子server下的项目同样去访问试试吧,若是能访问到,就说明代理也起做用了...

还有一个测试方法比较不错,写一个jsp页面,页面内容为打印当前server的名称,这样当咱们在前前台经过代理访问项目的时候,就能够清楚的知道每次访问的是哪一个server里面的jsp页面。

 

index.jsp

复制代码
<%@ page language="java" import="java.util.*" pageEncoding="utf-8"%>
<%@page import="java.io.PrintWriter"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
  <head>
      <title>测试页面</title>
  </head>

  <body>
  <%
      String servername = System.getProperty("weblogic.Name");
     PrintWriter writer = response.getWriter();
     writer.write("<http><body>"+servername+"</body></html>");
      System.out.println(servername);
   %>
   </body>
</html>
相关文章
相关标签/搜索