apache tomcat負載均衡

2021-06-05 06:54:11 字數 3874 閱讀 1581

最近tomcat總是記憶體溢位,於是就多看了一些tomcat的文章,今天恰好也看到了一篇關於tomcat負載均衡的東西

就好奇的配置了一下,感覺很爽,過程中出現了一些問題,做以下簡單的總結:

(說一下自己簡單的理解,負載均衡就是分擔以下一台伺服器上面的應用的負載,減輕伺服器的壓力,我看到的最簡單的效果就是實現了多個tomcat配置多個埠

但是可以用80埠同時訪問,並且互不影響,然後可以直接配置虛擬主機)

網上的配置文件

下面就開始進行了安裝測試:

之後在%apache_home%\conf\httpd.conf的最後面新增

# module mod_jk config file  

include conf/extra/mod_jk.conf

在%apache_home%\conf\extra\目錄下新建檔案:mod_jk.conf,內容如下

#配置 mod_jk conf

#載入集群中的workers

jkworkersfile conf/workers.properties

#載入workers的請求處理分配檔案

jkmountfile conf/uriworkermap.properties

#指定jk的日誌輸出檔案

jklogfile logs/mod_jk.log

#指定日誌級別

jkloglevel info在%apache_home%\目錄下新建檔案:workers.properties,內容如下:

# worker列表  

worker.list=lb_worker,jkstatus

#第乙個worker的配置,名為worker_1

#tomcat的主機位址,如不為本機,請填寫ip位址

worker.worker_1.host=localhost

#ajp13 埠號,對應tomcat配置檔案server.xml中connector port="8009",預設8009

worker.worker_1.port=8009

worker.worker_1.type=ajp13

#負載的權重值,越高表示負載越大

worker.worker_1.lbfactor=1

#第二個worker的配置,名為worker_2

worker.worker_2.host=localhost

#ajp13 埠號,對應tomcat配置檔案server.xml中connector port="9009"

worker.worker_2.port=9009

worker.worker_2.type=ajp13

worker.worker_2.lbfactor=1

#lb_worker,用於負載均衡分發的控制器

worker.lb_worker.type=lb

#重試次數

worker.lb_worker.retries=3

#指定負載的worker列表,用逗號分隔

worker.lb_worker.balance_workers=worker_1,worker_2

#配置session會話是否為粘性

#這樣負載均衡器lb就會盡量保持乙個session,也就是使使用者在一次會話中跟同乙個tomcat進行互動

worker.lb_worker.sticky_session=true

#如果sticky_session設為true時,此處一般設為false

worker.lb_worker.sticky_session_force=false

#設定執行狀態的控制器

worker.jkstatus.type=status

在%apache_home%\目錄下新建檔案:uriworkermap.properties,內容如下

#所有請求都由lb_worker這個worker處理  

/*=lb_worker

#所有包含jkstatus請求的都由名稱叫jkstatus的這個worker處理

/jkstatus=jkstatus

接下來對%tomcat_home%/conf/server.xml進行修改,其中要進行兩個tomcat的分別設定,並且和workers.properties裡面的對應的內容相匹配

對於安裝版本的tomcat我的配置如下:

<?xml version='1.0' encoding='utf-8'?>	  

對於免安裝版本的tomcat我的配置如下:

<?xml version='1.0' encoding='utf-8'?>	  

*(過程中出現的問題是,經常地因為占用埠不能啟動tomcat,所以小心的檢視了tomcat的埠使用情況:

必須保證

這兩個地方的命名和workers.properties裡面的對應的內容相匹配的同時保證tomcat的埠不能衝突,除了

的埠不能一樣

的埠也不能一樣

hello.jsp

<%   

system.out.println("this is tomcat server worker_1");

%>

<%

out.println(request.getlocaladdr() + " : " + request.getlocalport()+"

this is tomcat server worker_1");

%>

<%   

system.out.println("this is tomcat server worker_2");

%>

<%

out.println(request.getlocaladdr() + " : " + request.getlocalport()+"

this is tomcat server worker_2");

%>

這樣以後啟動tomcat,啟動apache

我在瀏覽器裡面輸入

http://localhost/hello.jsp同時重新整理瀏覽器

就會重複的出現:

localhost : 80

this is tomcat server worker_2

localhost : 80

this is tomcat server worker_1

起初的時候總是只能自動載入先開啟的tomcat

後來我做了如下修改:

#這樣負載均衡器lb就會盡量保持乙個session,也就是使使用者在一次會話中跟同乙個tomcat進行互動  

worker.lb_worker.sticky_session=false

驗證成功

簡單的配置了一下負載均衡作為筆記,好吧,該睡了

apache tomcat 負載均衡

其實無論是分布式,資料快取,還是負載均衡,無非就是改善 的效能瓶頸,在 原始碼不做優化的情況下,負載均衡可以說 是最直接的手段了。其實拋開這個名詞,放開了說,就是希望使用者能夠分流,也就是說把所有使用者的訪問壓力分散到多台伺服器上,也可以 分散到多個tomcat裡,如果一台伺服器裝多個tomcat,...

apache tomcat 負載均衡

需要準備的環境 apache2.2 apache mod jk模組 自帶 tomcat6.0 apache端配置 conf httpd.conf中最後一行引用jk的配置檔案 include mod jk.conf mod jk.conf中的內容,載入了mod jk的庫檔案,指定了worker的配置檔...

apache tomcat 負載均衡

其實無論是分布式,資料快取,還是負載均衡,無非就是改善 的效能瓶頸,在 原始碼不做優化的情況下,負載均衡可以說 是最直接的手段了。其實拋開這個名詞,放開了說,就是希望使用者能夠分流,也就是說把所有使用者的訪問壓力分散到多台伺服器上,也可以 分散到多個tomcat裡,如果一台伺服器裝多個tomcat,...