zoukankan      html  css  js  c++  java
  • WebLogic11g-负载分发

    负载均衡的实现方式有很多种,这里只介绍三种相对来说成本较低的方案(维护成本以及费用成本)weblogic自带的proxy、apache、nginx 

    1、weblogic自带的proxy方式: 
    1)需要新建proxy服务器 

    2)配置proxy的ip、端口,这里设置为7100 

    3)配置SSL的主机名验证为“无” 

    4)添加到machine管理 


    5)部署proxy应用 


    6)在服务器列表中启动三个server 

    7)测试 


    proxy应用的代码我压缩打包上传了 
    主要就是配置web的servlet,拦截所有的请求,weblogic自带的配置如下: 
    Java代码  收藏代码
    1. <!DOCTYPE web-app PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN" "http://java.sun.com/dtd/web-app_2_3.dtd">  
    2. <web-app>  
    3. <servlet>  
    4. <servlet-name>HttpClusterServlet</servlet-name>  
    5. <servlet-class>weblogic.servlet.proxy.HttpClusterServlet</servlet-class>  
    6. <init-param>  
    7. <param-name>WebLogicCluster</param-name>  
    8. <param-value>127.0.0.1:7101|127.0.0.1:7102</param-value>  
    9. </init-param>  
    10. </servlet>  
    11. <servlet-mapping>  
    12. <servlet-name>HttpClusterServlet</servlet-name>  
    13. <url-pattern>/</url-pattern>  
    14. </servlet-mapping>  
    15. <servlet-mapping>  
    16. <servlet-name>HttpClusterServlet</servlet-name>  
    17. <url-pattern>*.jsp</url-pattern>  
    18. </servlet-mapping>  
    19. <servlet-mapping>  
    20. <servlet-name>HttpClusterServlet</servlet-name>  
    21. <url-pattern>*.jspx</url-pattern>  
    22. </servlet-mapping>  
    23. <servlet-mapping>  
    24. <servlet-name>HttpClusterServlet</servlet-name>  
    25. <url-pattern>*.htm</url-pattern>  
    26. </servlet-mapping>  
    27. <servlet-mapping>  
    28. <servlet-name>HttpClusterServlet</servlet-name>  
    29. <url-pattern>*.html</url-pattern>  
    30. </servlet-mapping>  
    31. <servlet-mapping>  
    32. <servlet-name>HttpClusterServlet</servlet-name>  
    33. <url-pattern>*.jpd</url-pattern>  
    34. </servlet-mapping>  
    35. <servlet-mapping>  
    36. <servlet-name>HttpClusterServlet</servlet-name>  
    37. <url-pattern>*.jcx</url-pattern>  
    38. </servlet-mapping>  
    39. <servlet-mapping>  
    40. <servlet-name>HttpClusterServlet</servlet-name>  
    41. <url-pattern>*.dtf</url-pattern>  
    42. </servlet-mapping>  
    43. <servlet-mapping>  
    44. <servlet-name>HttpClusterServlet</servlet-name>  
    45. <url-pattern>*.jws</url-pattern>  
    46. </servlet-mapping>  
    47. </web-app>  

    实际上,这个proxy内部会检测server的状态、负载情况,然后根据算法再将请求转发给具体的server处理。 

    2、apache方式: 
    1)下载apache,安装过程就不介绍了。下载地址为: 
    http://httpd.apache.org/download.cgi 
    2)添加weblogic插件: 
    weblogic11g的插件位置是: 
    D:serverweblogic11wlserver_10.3serverpluginwin32 
    注意这里与weblogic较早的版本位置不同。具体库所在目录根据操作系统版本及位数决定,我的是32位操作系统,所以就是这个目录下的mod_wl_22.so复制到apache的modules文件夹下 
    3)配置apache 
    在原有的配置最后增加如下片段 
    Java代码  收藏代码
    1. Listen 8001  
    2. ######################## weblogic plugin ##########################  
    3. LoadModule weblogic_module modules/mod_wl_22.so  
    4.   
    5. <IfModule mod_weblogic.c>  
    6.         WebLogicCluster 127.0.0.1:7101,127.0.0.1:7102  
    7.         MatchExpression */servlet/*  
    8.         MatchExpression *.jsp  
    9.         MatchExpression *.action  
    10.         Debug OFF  
    11. </IfModule>  

    主要就是设置WebLogicCluster,根据集群的server列表来设置。 
    注意:我这里设置的Listen端口号是8001,所以下面测试访问这个端口 
    4)测试 


    3、nginx方式: 
    1)下载nginx并安装(我这里是windows环境,下载地址是: 
    http://nginx.org/en/download.html) 
    2)简单配置nginx: 
    修改nginx/conf/nginx.conf文件,开发、学习情况,只需要简单的增加如下配置即可: 
    Java代码  收藏代码
    1.    upstream  weblogic {  
    2.         server 127.0.0.1:7101 weight=10;  
    3. server 127.0.0.1:7102 weight=10;  
    4.    }  
    5.   
    6.    server {  
    7.        listen       8001;  
    8.        server_name  weblogic;  
    9.   
    10.        #charset koi8-r;  
    11.   
    12.        #access_log  logs/host.access.log  main;  
    13.   
    14.        location / {  
    15.            #root   html;  
    16.            #index  index.html index.htm;  
    17.     proxy_pass http://weblogic;  
    18.        }  
    19.        ……  
    20.      }  

    具体的意义,可以从网上找资料,这里不做详解。 
    3)运行 
    直接双击nginx.exe就可以了。 
    4)测试: 
    我这里配置的listen端口号是8001,测试如图所示: 


    可以查看进程列表,有nginx的进程在运行,同时可以查看nginx的logs目录下的access.log,http请求的日志都能看到。我的日志也贴上吧: 
    Java代码  收藏代码
    1. 127.0.0.1 - - [16/Sep/2013:16:55:12 +0800"GET /weblogic HTTP/1.1" 499 0 "-" "Mozilla/5.0 (compatible; MSIE 10.0; Windows NT 6.1; Trident/6.0)"  
    2. 127.0.0.1 - - [16/Sep/2013:16:55:15 +0800"GET /weblogic HTTP/1.1" 499 0 "-" "Mozilla/5.0 (compatible; MSIE 10.0; Windows NT 6.1; Trident/6.0)"  
    3. 127.0.0.1 - - [16/Sep/2013:16:56:23 +0800"GET / HTTP/1.1" 499 0 "-" "Mozilla/5.0 (compatible; MSIE 10.0; Windows NT 6.1; Trident/6.0)"  
    4. 127.0.0.1 - - [16/Sep/2013:16:58:50 +0800"GET /mini-web-cluster HTTP/1.1" 302 273 "-" "Mozilla/5.0 (compatible; MSIE 10.0; Windows NT 6.1; Trident/6.0)"  
    5. 127.0.0.1 - - [16/Sep/2013:16:58:50 +0800"GET /mini-web-cluster/ HTTP/1.1" 302 311 "-" "Mozilla/5.0 (compatible; MSIE 10.0; Windows NT 6.1; Trident/6.0)"  
    6. 127.0.0.1 - - [16/Sep/2013:16:58:51 +0800"GET /mini-web-cluster/account/user.action HTTP/1.1" 302 297 "-" "Mozilla/5.0 (compatible; MSIE 10.0; Windows NT 6.1; Trident/6.0)"  
    7. 127.0.0.1 - - [16/Sep/2013:16:58:52 +0800"GET /mini-web-cluster/login.action HTTP/1.1" 200 2416 "-" "Mozilla/5.0 (compatible; MSIE 10.0; Windows NT 6.1; Trident/6.0)"  
    8. 127.0.0.1 - - [16/Sep/2013:16:58:52 +0800"GET /mini-web-cluster/css/style.css HTTP/1.1" 304 0 "http://127.0.0.1:8001/mini-web-cluster/login.action" "Mozilla/5.0 (compatible; MSIE 10.0; Windows NT 6.1; Trident/6.0)"  
    9. 127.0.0.1 - - [16/Sep/2013:16:58:52 +0800"GET /mini-web-cluster/css/yui.css HTTP/1.1" 304 0 "http://127.0.0.1:8001/mini-web-cluster/login.action" "Mozilla/5.0 (compatible; MSIE 10.0; Windows NT 6.1; Trident/6.0)"  
    10. 127.0.0.1 - - [16/Sep/2013:16:58:52 +0800"GET /mini-web-cluster/js/validate/jquery.validate.js HTTP/1.1" 304 0 "http://127.0.0.1:8001/mini-web-cluster/login.action" "Mozilla/5.0 (compatible; MSIE 10.0; Windows NT 6.1; Trident/6.0)"  
    11. 127.0.0.1 - - [16/Sep/2013:16:58:52 +0800"GET /mini-web-cluster/js/validate/messages_cn.js HTTP/1.1" 304 0 "http://127.0.0.1:8001/mini-web-cluster/login.action" "Mozilla/5.0 (compatible; MSIE 10.0; Windows NT 6.1; Trident/6.0)"  
    12. 127.0.0.1 - - [16/Sep/2013:16:58:52 +0800"GET /mini-web-cluster/js/jquery.js HTTP/1.1" 304 0 "http://127.0.0.1:8001/mini-web-cluster/login.action" "Mozilla/5.0 (compatible; MSIE 10.0; Windows NT 6.1; Trident/6.0)"  
    13. 127.0.0.1 - - [16/Sep/2013:16:58:52 +0800"GET /favicon.ico HTTP/1.1" 404 1214 "-" "Mozilla/5.0 (compatible; MSIE 10.0; Windows NT 6.1; Trident/6.0)"  


    这篇仅仅介绍负载分发的几种方式,也都是简单的配置,实际环境下还需要做相关性能测试以及配置动静分离,减少后端服务的压力。 

    下一篇介绍WebLogic集群中涉及的概念、原理……敬请期待。





  • 相关阅读:
    HDU-2222 Keywords Search(AC自动机)
    HDU-2647 Reward(拓扑排序)
    HDU-2896 病毒侵袭(AC自动机)
    UESTC-1057 秋实大哥与花(线段树+成段加减+区间求和)
    CSU-1120 病毒(最长递增公共子序列)
    记忆化搜索
    区间动态规划 矩阵连乘 Medium
    34枚金币时间管理法
    摄影基础1
    学习法则 讲
  • 原文地址:https://www.cnblogs.com/wuyida/p/6300310.html
Copyright © 2011-2022 走看看