tomcat apache實現負載均衡集群

2021-08-31 06:45:34 字數 3153 閱讀 6309

當開發乙個流量小,併發量不大的系統的時候,負載均衡集群沒什麼大的意義。反之則意義重大。

使用apache+tomcat配置負載均衡集群流程如下:使用者傳送請求到web伺服器(也就是apache) apache 根據定義規則進行http**到不同的tomcat伺服器 。同時要保證各個tomcat伺服器之間的訊息共享(非常重要!如在tomcat改變某乙個記憶體值的同時要更新到每一台伺服器上)實現實時訊息同步 。

具體步驟如下:

注意,apache版本要和mod_jk版本一致。

(1)安裝配置好tomcat伺服器;

(2)安裝配置號兩個或者以上的tomcat伺服器(用於測試集群)

(3)在apache的httpd.cfg下配置加上include conf/mod_jk.conf

##    serveradmin [email protected]

#    documentroot /www/docs/dummy-host.example.com

#    servername dummy-host.example.com

#    errorlog logs/dummy-host.example.com-error_log

#    customlog logs/dummy-host.example.com-access_log common

#include conf/mod_jk.conf

(5)在conf資料夾下新建mod_jk.conf:#載入

mod_jk module  

注意檔名根據實際情況而填

loadmodule jk_module modules/mod_jk.so

#指定workers.properties

檔案路徑

jkworkersfile conf/workers.properties

#指定那些請求交給

tomcat

處理,"controller"

為在workers.propertise

裡指定的負載分配控制器

jkmount /*.do controller

jkmount /*web-inf controller

jkmount /*j_spring_security_check controller

jkmount /*.action controller

jkmount /servlet/* controller

jkmount /*.jsp controller

jkmount /*.do controller

jkmount /*.action controller

jkmount /* controller #

如果想所有的訪問都交給負載均衡器,那就

jkmount /* controller

(6)在同路徑下(在conf資料夾下)新建workers.properties 

#server 列表

worker.list = controller,tomcat1,tomcat2

#*****===tomcat1*****===

worker.tomcat1.port=8010

worker.tomcat1.host=localhost

worker.tomcat1.type=ajp13

worker.tomcat1.lbfactor = 1

#*****===tomcat2*****===

worker.tomcat2.port=8011

worker.tomcat2.host=localhost

worker.tomcat2.type=ajp13

worker.tomcat2.lbfactor = 1

#*****===controller,

負載均衡控制器

*****===

worker.controller.type=lb

worker.controller.balanced_workers=tomcat1,tomcat2   

#指定分擔請求的tomcat

worker.controller.sticky_session=1

解釋一下:

workers.properties中已經配置了埠和各個tomcat,從埠找到服務。

sticky_session   sticky_session_force          含義 

true                   false                         session會複製,有粘性 

true                   true                          session會複製,有粘性 

false                  false                        session不會複製,無粘性 

false                  true                         session不會複製,無粘性

worker.controller.sticky_session,設定為1或true使用粘著session,設定為0或false不使用粘著session。如果sticky_session設為true時,建議sticky_session_force設為false,此引數表明如果集群中某台伺服器在多次請求沒有響應後,將**當前的請求到其它伺服器上處理;sticky_session=false時,影響比較大,會導致**到其它伺服器上的請求,找不到原來的session,所以如果此時請求中有讀取session中某些資訊的話,就會導致應用的null異常。sticky_session、sticky_session_force的預設值分別為true,false。

worker.controller.sticky_session_force=true,始終**到session建立的伺服器上。

(7)修改兩個tomcat的ajp13埠號(和上面myworker.properties)必須一一對應 並且修改兩個tomcat中的開啟埠號和服務埠號,以免重複

以上基本完成tomcat集群的基本配置 現在要做最重要的session共享; 。

(8)開啟兩個tomcat配置

把注釋去掉。這裡的

session

共享有很多做法,可以查詢網上。

(10)這樣就搭建ok了,可以去試試。

Tomcat apache整合 原創

本人所用的軟體版本 jdk jdk1.5 apache apache 2.0.53 win32 x86 no ssl.msi tomcat jakarta tomcat 5.0.28 connectors jakarta tomcat connectors jk2.0.4 win32 apache2...

Tomcat Apache 負載均衡

在apache的conf下建立檔案workers.properties workers.properties 指定tomcat伺服器 worker.list fuzaij,tomcat1,tomcat2 worker.tomcat1.port 8019 worker.tomcat1.host loc...

Spring Cloud Ribbon實現負載均衡

之前文章 spring cloud 服務註冊和發現 spring cloud 服務端高可用 負載均衡在系統架構中是乙個非常重要的角色,在前面大型 架構學習總結中,可以看到,高可用,伸縮性,效能幾個架構要素中,負載均衡都有著很重要的地位,是系統壓力緩解,系統擴容的重要手段之一。一般來說,我們講的負載均...