Apache+tomcat的集羣部署搭建

什麼是集羣
一個任務部署在多個服務器或設備上,字面意義這些設備和服務器不再是隻有一個,是多個。和分佈式不同,分佈式是一個任務拆分爲多個子任務在多個服務和設備上,但是集羣是一個任務一個項目,部署在多個服務器上。
特點
1.負載均衡
能夠使分擔服務器壓力,比如有兩個tomcata、tomcatb,有三個請求(a,b,c)訪問,可以將a給tomcata,b給tomcatb,c給tomcata。
2.失敗遷移
一個服務器出問題拉可以把該次請求給其它服務器處理,比如上面的a訪問tomcata訪問不了,a就會給tomcatb處理。
分類
1.水平集羣 :將服務器安裝在 各個不同的計算機上 (失敗遷移)
2.垂直集羣 :將多個服務器,安裝在同一個計算機上 (負載均衡)
上面的分類只是更明顯,再同一臺計算機上關閉一個服務器,也能達到失敗遷移,但是如果是設備的問題就不能,所以實在硬件層面的分類。
搭建
特點:
apache :特點是處理靜態資源(html 圖片 js) .這裏的apache是一個服務工具,不是 之前理解的 基金組織。
tomcat:特點 可以處理動態資源
apache+tomcat:動靜分離
apache:請求的分流操作
思路:
用apache來控制請求分發到具體的服務器上去處理。
1.準備
a.下載apache
https://www.apachehaus.com/cgi-bin/download.plx?dli=QYGxmNRVVQ08ERjtWZVp1cKVlUGR1UwllWUJVe
b.下載tomcat
https://tomcat.apache.org/download-90.cgi
c.下載mod_jk.so
http://archive.apache.org/dist/tomcat/tomcat-connectors/jk/binaries/windows/ 中的httpd.zip

2.配置tomcat(使用兩個tomcat爲例)
a.準備tomcat複製兩份放在一個文件夾cluster ,命名tomcat-a、tomcat-b
在這裏插入圖片描述
b.規劃並修改端口: 在tomcat的server.xml
server端口號 http協議端口 ajp協議端口號
tomcat-a: 1005 1080 1009
tomcat-b: 2005 2080 2009
在這裏插入圖片描述
在這裏插入圖片描述
在這裏插入圖片描述
端口可以任意配置,這裏是爲了方便記憶和規劃。
c.配置引擎Engine: server.xml
增加jvmRoute

 <Engine name="Catalina" defaultHost="localhost" jvmRoute="tomcat-b">

在這裏插入圖片描述
d.打開集羣開關: server.xml
打開以下注釋

<Cluster className="org.apache.catalina.ha.tcp.SimpleTcpCluster"/>

在這裏插入圖片描述
tomcat配置完,tomcatb按相同的步驟配置正確。
2.配置apache
a.將mod_jk.so文件放在…\Apache24\modules\文件裏面
在這裏插入圖片描述
b.在…\Apache24\conf\文件下創建workers.properties文件
在這裏插入圖片描述

#controller是控制器,後面的tomcat是服務器,名字隨便起
worker.list=controller,tomcata,tomcatb

#port對應服務器的ajp端口號,host是主機名,tomcat裏的一致,type類型ajp13(13版本),lbfactor負載比重,就是分配請求的比例
#tomcata
worker.tomcata.port=1009
worker.tomcata.host=localhost
worker.tomcata.type=ajp13
#負載均衡的比重
worker.tomcata.lbfactor=1

#tomcatb
worker.tomcatb.port=2009
worker.tomcatb.host=localhost
worker.tomcatb.type=ajp13
#負載均衡的比重
worker.tomcatb.lbfactor=2
#type類型負載均衡的簡寫lb,balanced_workers服務器有哪些,sticky_session是session的共享類型,false是廣播true是固定將每一個用戶的請求 分給特定的服務器
#controller
worker.controller.type=lb
worker.controller.balanced_workers=tomcata,tomcatb
worker.controller.sticky_session=false

c.在…\Apache24\conf\文件下創建mod_jk.conf文件(整合a、b中的mod_jk.so和workers.properties文件)
在這裏插入圖片描述

#加載mod_jk.so  從apach的根目錄開始


LoadModule jk_module modules/mod_jk.so

#加載workers.properties

JkWorkersFile conf/workers.properties

#分流
JkMount /* controller

d.在…\Apache24\confhttpd.xml文件中註冊c中的mod_jk.conf文件
在這裏插入圖片描述

include conf/mod_jk.conf

3.整合
將項目放在tomcata和tomcatb的webapps文件夾下,然後啓動apache24、tomcata、tomcatb。
在這裏插入圖片描述
運行截圖
刷新三次頁面看session值,會按workers.properties文件配置的lbfactor的比重分配。
在這裏插入圖片描述
在這裏插入圖片描述
在這裏插入圖片描述
感謝顏羣老師

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章