weblogic負載分發


 

博客分類:

負載均衡的實現方式有很多種,這里只介紹三種相對來說成本較低的方案(維護成本以及費用成本)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:\server\weblogic11\wlserver_10.3\server\plugin\win\32
注意這里與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 "-" "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 "-" "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 "-" "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 "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 "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 "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 "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 "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)"  


這篇僅僅介紹負載分發的幾種方式,也都是簡單的配置,實際環境下還需要做相關性能測試以及配置動靜分離,減少后端服務的壓力。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM