![JBoss負(fù)載均衡與Mysql主從備份_第1頁](http://file3.renrendoc.com/fileroot_temp3/2022-1/22/3c069802-35e1-48fb-8338-74dcc8a20a1a/3c069802-35e1-48fb-8338-74dcc8a20a1a1.gif)
![JBoss負(fù)載均衡與Mysql主從備份_第2頁](http://file3.renrendoc.com/fileroot_temp3/2022-1/22/3c069802-35e1-48fb-8338-74dcc8a20a1a/3c069802-35e1-48fb-8338-74dcc8a20a1a2.gif)
![JBoss負(fù)載均衡與Mysql主從備份_第3頁](http://file3.renrendoc.com/fileroot_temp3/2022-1/22/3c069802-35e1-48fb-8338-74dcc8a20a1a/3c069802-35e1-48fb-8338-74dcc8a20a1a3.gif)
![JBoss負(fù)載均衡與Mysql主從備份_第4頁](http://file3.renrendoc.com/fileroot_temp3/2022-1/22/3c069802-35e1-48fb-8338-74dcc8a20a1a/3c069802-35e1-48fb-8338-74dcc8a20a1a4.gif)
![JBoss負(fù)載均衡與Mysql主從備份_第5頁](http://file3.renrendoc.com/fileroot_temp3/2022-1/22/3c069802-35e1-48fb-8338-74dcc8a20a1a/3c069802-35e1-48fb-8338-74dcc8a20a1a5.gif)
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、JBoss節(jié)點(diǎn)的負(fù)載均衡與Mysql主從備份劉巖Email:suhuanzheng77848771. 前言做JavaEE企業(yè)級應(yīng)用就離不開集群、分布式環(huán)境這些和運(yùn)行時(shí)環(huán)境相關(guān)的相關(guān)配置。企業(yè)及應(yīng)用很大程度上都是處理十分安全、可靠、完整的請求,能適應(yīng)任何運(yùn)行時(shí)環(huán)境異常情況下也能提供軟件服務(wù)。如果把所有開發(fā)好的程序全部放在一個(gè)機(jī)器上,所有的請求全都訪問這一臺機(jī)器就可以的系統(tǒng),自然沒有那么多事情要考慮了。如果系統(tǒng)是時(shí)時(shí)刻刻有客戶需要訪問、需要為客戶提供7*24的服務(wù)、并且用戶訪問量十分巨大的時(shí)候。恐怕一臺再好的服務(wù)器也難免會(huì)力不從心。如果部署軟件的服務(wù)器發(fā)生了地震、火災(zāi)、人為破壞等等事情,那么這個(gè)用
2、戶的損失量恐怕就難以估計(jì)了。所以像銀行、醫(yī)療、電信、政府服務(wù)這種客戶群十分巨大、訪問十分頻繁、而且在老百姓看來你得時(shí)時(shí)刻刻提供服務(wù)的軟件系統(tǒng)來說,穩(wěn)定性、安全性、實(shí)時(shí)性就提到了第一位。這個(gè)除了科學(xué)計(jì)算集群,科學(xué)計(jì)算的集群機(jī)器是需要每個(gè)機(jī)器都為某一種復(fù)雜的計(jì)算(比如多臺機(jī)器共同破譯敵方的密碼),最后將這些機(jī)器計(jì)算的結(jié)果返回給使用者。所以來說一般企業(yè)級的軟件都是分布式的、高可用的架構(gòu),而且一般提供服務(wù)的機(jī)器是多臺機(jī)器,每臺機(jī)器按照某種負(fù)載算法來分擔(dān)大量用戶的每個(gè)用戶的請求。這樣帶來的一個(gè)結(jié)果就是:“用戶再多我也不怕,無非就是加硬件機(jī)器唄,干活的人多了,分擔(dān)到每個(gè)人的工作量就少了?!比绻X得分擔(dān)的機(jī)
3、器太多,并且做的系統(tǒng)訪問量又不是很大,34臺足夠多了。好了就像很多公司那樣裁員吧!托管維護(hù)一臺Node服務(wù)器價(jià)格很高的!如果其中一個(gè)服務(wù)器掛了,沒關(guān)系。你死了沒關(guān)系,有別的員工呢!大家多分擔(dān)一點(diǎn)本該屬于你的工作量(對應(yīng)著客戶端的請求)就OK了。這就是負(fù)載均衡的基本意思。還有一點(diǎn)就是在企業(yè)級系統(tǒng)中,數(shù)據(jù)記錄比什么都重要!某種行業(yè),數(shù)據(jù)比軟件值錢得多!比如銀行,咱們銀行卡里面的數(shù)字不就是銀行數(shù)據(jù)庫那一條條的數(shù)據(jù)嘛。這個(gè)需求就要求銀行的數(shù)據(jù)庫記錄一定要有多個(gè)拷貝。假如地震了,銀行的其中一個(gè)數(shù)據(jù)庫掛了。沒關(guān)系,還有其他的和你一摸一樣的兄弟頂著呢?。ㄟ@使我想到了一部電影美國的月球,利用一個(gè)真人的多個(gè)克隆
4、人為一個(gè)公司服務(wù)了很多年,而克隆人自己之前被灌輸了工作25年就能回地球和家人團(tuán)聚的意識,一個(gè)克隆人死后,另一個(gè)克隆人被喚醒,繼續(xù)重復(fù))。咱們這里先只討論MySql的主從備份策略,回頭再單獨(dú)討論Mysql的自動(dòng)切換和Oracle的RAC配置。這里主要總結(jié)了:1):apache http server+負(fù)載均衡配置2):負(fù)載均衡+JBoss節(jié)點(diǎn)配置3):Mysql數(shù)據(jù)主從備份2. 運(yùn)行時(shí)環(huán)境硬件:2臺電腦:在應(yīng)用服務(wù)器方面,一臺是既當(dāng)主分發(fā)和Node1,另一臺就是一個(gè)純粹的Node2。在數(shù)據(jù)庫方面,一臺是主數(shù)據(jù)庫master、另一臺是從數(shù)據(jù)庫slave。網(wǎng)絡(luò):能讓2臺機(jī)器互相ping的通。軟件:操
5、作系統(tǒng):Windows(回頭在linux在配置一次,配置相似)Node的應(yīng)用服務(wù)器:jboss-5.1.0.GAHttp請求服務(wù):apache http server 2.2.17負(fù)載均衡模塊:mod_jk-1.2.31-httpd-2.2.3.so數(shù)據(jù)庫:Mysql Server 5.1.46整體的框架流程圖如下:1):所有的用戶HTTP請求都發(fā)送到apache server;2):apache server通過加載的mod_jk模塊的配置屬性會(huì)負(fù)責(zé)將請求分發(fā)到不同的JBoss服務(wù)節(jié)點(diǎn)3):Jboss節(jié)點(diǎn)就可以負(fù)責(zé)業(yè)務(wù)處理了4):需要數(shù)據(jù)庫的需求會(huì)請求主Mysql5):Mysql自己可以通過
6、自己的機(jī)制,向自己的從數(shù)據(jù)庫同步數(shù)據(jù),保證master和slave記錄一致。其實(shí)數(shù)據(jù)庫這里還可以繼續(xù)優(yōu)化,通過Mysql代理Proxy實(shí)現(xiàn)數(shù)據(jù)庫的讀寫分離,讀記錄直接從從數(shù)據(jù)庫讀取,寫數(shù)據(jù)直接面向的是主數(shù)據(jù)庫進(jìn)行。這樣主數(shù)據(jù)庫只負(fù)責(zé)所有的記錄更改、而從數(shù)據(jù)庫只負(fù)責(zé)所有的查詢操作,分擔(dān)了不少主數(shù)據(jù)庫的負(fù)擔(dān)。但是這個(gè)不在我們這次的討論范圍。另外要說的就是這里使用的負(fù)載均衡是借助了apache的一個(gè)模塊來實(shí)現(xiàn)的。3. 配置1):安裝apache http server:這個(gè)在windows上應(yīng)該沒什么問題,主要就是修改端口,將默認(rèn)的端口80修改為8011,通過修改$apache_HOME/conf/
7、httpd.conf文件進(jìn)行修改。以后在linux下安裝配置apache server的時(shí)候再做總結(jié)。2):安裝mod_jk模塊:從apache網(wǎng)站下載mod_jk-1.2.31-httpd-2.2.3.so文件(在Tomcat頁面去下載),之后將它拷貝到$apache_HOME/modules/下面,注意版本一定不要有任何差異。mod_jk和對應(yīng)的apache版本要求比較嚴(yán)格,稍微不慎,集成就會(huì)出錯(cuò)。修改$apache_HOME/conf/httpd.conf文件,讓apache加載mod_jk模塊加入如下配置LoadModule jk_module modules/mod_jk-1.2.3
8、1-httpd-2.2.3.soJkWorkersFile conf/pertiesJkLogStampFormat "%a %b %d %H:%M:%S %Y"JkLogFile logs/mod_jk.logJkLogLevel debugJkMount /* loadbalancer第一行代表加載模塊,第二行代表有關(guān)mod_jk模塊的相關(guān)配置文件在哪里,這個(gè)文件一會(huì)兒咱們會(huì)討論,第三行是日志的格式,第四行是指定mod_jk模塊相關(guān)的日志文件位置,第五行是日志的級別,debug輸出的日志比較多。第六行代表所有對于/*的請求,mod_jk都會(huì)將這個(gè)請
9、求分發(fā)到負(fù)載均衡器模塊去處理、轉(zhuǎn)發(fā)。我們來看perties配置# Define list of workers that will be used # for mapping requests worker.list=loadbalancer,mystatus #defaine a worker for apacheworker.node1.type=ajp13worker.node1.host=00worker.node1.port=8009worker.node1.lbfactor=1worker.node1.socket_timeout=30w
10、orker.node1.socket_keepalive=1worker.node2.type=ajp13worker.node2.host=06worker.node2.port=8009worker.node2.lbfactor=1worker.node2.socket_timeout=30000worker.node2.socket_keepalive=1worker.loadbalancer.type=lbworker.loadbalancer.balance_workers=node1,node2worker.loadbalancer.sticky_sessio
11、n=1worker.mystatus.type=status這里需要說明的就是這個(gè)文件中很多的名稱要對應(yīng)上,worker.list=loadbalancer,mystatus和worker.loadbalancer.type中的loadbalancer以及worker.mystatus.type要對應(yīng)上。worker.node1.type代表和第一個(gè)node節(jié)點(diǎn)的通訊協(xié)議是ajp13協(xié)議。worker.node1.host=00代表著第一個(gè)node節(jié)點(diǎn)的ip地址。worker.node1.lbfactor代表負(fù)載均衡分發(fā)到此node1節(jié)點(diǎn)的權(quán)重大小,越大,發(fā)的請求越多。w
12、orker.loadbalancer.balance_workers=node1,node2表示負(fù)載均衡上有2個(gè)node,名字一個(gè)是node1,另一個(gè)node2.這個(gè)名字首先和本文件的worker.nodeX要一致,第二就是和JBoss配置文件(稍后會(huì)提到)中的配置名一致。worker.loadbalancer.sticky_session=1代表HttpSession會(huì)共享。這個(gè)需求在本次配置中暫時(shí)沒成功,先留一個(gè)問題,之后再討論、總結(jié)。到此算是apache配置完了負(fù)載均衡模塊。3):配置JBoss服務(wù)節(jié)點(diǎn):我們采用JBoss的all目錄為我們工作。JBoss配置相對簡單,修改$JBOSS_
13、HOMEserveralldeployjbossweb.sarserver.xml文件。<Server> <Listener className="org.apache.catalina.core.AprLifecycleListener" SSLEngine="on" /> <Listener className="org.apache.catalina.core.JasperListener" /> <Service name="jboss.web"> <!
14、- A HTTP/1.1 Connector on port 8080 -> <Connector protocol="HTTP/1.1" port="18181" address="" connectionTimeout="20000" redirectPort="8443" /> <!- Add this option to the connector to avoid problems with .NET clients that don't
15、implement HTTP/1.1 correctly restrictedUserAgents=".*MS Web Services Client Protocol 1.1.4322.*$" -> <!- A AJP 1.3 Connector on port 8009 -> <Connector protocol="AJP/1.3" port="8009" address="" redirectPort="8443" /> <Engine
16、name="jboss.web" defaultHost="localhost" jvmRoute="node1"> <Realm className="org.jboss.web.tomcat.security.JBossWebRealm" certificatePrincipal="org.jboss.security.auth.certs.SubjectDNMapping" allRolesMode="authOnly" /> <Host nam
17、e="localhost"> <Valve className="org.jboss.web.tomcat.service.jca.CachedConnectionValve" cachedConnectionManagerObjectName="jboss.jca:service=CachedConnectionManager" transactionManagerObjectName="jboss:service=TransactionManager" /> </Host> <
18、;/Engine> </Service></Server>主要是修改了http的端口18181,將它的address換成了,否則以ip+端口訪問這個(gè)node是不起作用的。緊接著就是修改AJP/1.3協(xié)議相關(guān)的信息了,這個(gè)就是由apache負(fù)載均衡分發(fā)到這個(gè)node節(jié)點(diǎn)的橋梁。這個(gè)AJP/1.3協(xié)議的端口要和mod_jk中的配置一致。Ip也替換成可以讓別的機(jī)器訪問的方式。之后就是給這個(gè)Node加一個(gè)名稱標(biāo)識,在Engine標(biāo)簽加入jvmRoute="node1",用于node的標(biāo)識。這個(gè)名稱一定要和mod_jk中的配置的節(jié)點(diǎn)名稱一致
19、。另一個(gè)JBoss節(jié)點(diǎn)的配置類似,不再贅述。另一臺Node的配置和此Node的配置唯一一個(gè)不同的就是<Engine name="jboss.web" defaultHost="localhost" jvmRoute="node2">標(biāo)示它是不同的node。這樣就算其中一臺服務(wù)器掛了,只要通過apache http訪問過來的請求,都不會(huì)影響用戶的使用,負(fù)載均衡會(huì)將請求分發(fā)到另一個(gè)node節(jié)點(diǎn)上,等這一臺恢復(fù)了,2臺在一起分擔(dān)工作。4):配置Mysql數(shù)據(jù)庫的主從實(shí)例:其實(shí)網(wǎng)上有很多文章特別介紹如何配置主從備份,在這里也是將別
20、人的經(jīng)驗(yàn)分享出來。首先停下主Mysql的服務(wù),在$mysql /下面增加一個(gè)配置文件起名字叫做my-master-slave.ini,內(nèi)容和基本的配置差不多,主要是加上了一下這幾行server-id = 1 #主機(jī)標(biāo)示,整數(shù)log_bin = c:/mysql-bin.log #確保此文件可寫read-only =0 #主機(jī),讀寫都可以binlog-do-db =test #需要備份數(shù)據(jù),多個(gè)寫多行binlog-ignore-db=mysql #不需要備份的數(shù)據(jù)庫,多個(gè)寫多行上面配置中的注釋已經(jīng)比較明確了,就不解釋了。主要就是那個(gè)server-id,在整個(gè)局域網(wǎng)中的數(shù)據(jù)庫不要重復(fù),否則主從備份
21、會(huì)不正常。在從數(shù)據(jù)庫的mysql配置文件配置如下server-id = 2log_bin = c:/mysql-bin.logmaster-host =192.168.1. 100master
22、-user =liuyanmaster-pass =111111master-port =3306master-connect-retry=60 #如果從服務(wù)器發(fā)現(xiàn)主服務(wù)器斷掉,重新連接的時(shí)間差(秒)replicate-do-db =test #只復(fù)制某個(gè)庫replicate-ignore-db=mysql #不復(fù)制某個(gè)庫不過要保證從數(shù)據(jù)庫也要有test這個(gè)數(shù)據(jù)庫哦,而且表結(jié)構(gòu)、編碼格式都要和主庫絲毫不差,幾乎在同步之前要做主庫的鏡像,恢復(fù)到從庫。先啟動(dòng)主庫。在主庫的mysql控制臺輸入如下命令mysql>GRANT REPLICATION SLAVE ON *.* TO liuyan06 IDENTIFIED B
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 班主任心理健康與壓力管理的培訓(xùn)總結(jié)
- 公交掃惡除霸承諾書范本
- 2025-2030全球船用防火窗行業(yè)調(diào)研及趨勢分析報(bào)告
- 2025年全球及中國運(yùn)動(dòng)刺激療法行業(yè)頭部企業(yè)市場占有率及排名調(diào)研報(bào)告
- 2025年全球及中國矩形橋式起重機(jī)行業(yè)頭部企業(yè)市場占有率及排名調(diào)研報(bào)告
- 2025-2030全球便攜式鼻腔沖洗器行業(yè)調(diào)研及趨勢分析報(bào)告
- 2025-2030全球農(nóng)用氧化亞銅行業(yè)調(diào)研及趨勢分析報(bào)告
- 2025年全球及中國鋼制螺旋錐齒輪行業(yè)頭部企業(yè)市場占有率及排名調(diào)研報(bào)告
- 2025年全球及中國戶外電氣箱行業(yè)頭部企業(yè)市場占有率及排名調(diào)研報(bào)告
- 2025-2030全球軸承精密滾珠行業(yè)調(diào)研及趨勢分析報(bào)告
- 蛋糕店服務(wù)員勞動(dòng)合同
- 土地買賣合同參考模板
- 2025高考數(shù)學(xué)二輪復(fù)習(xí)-專題一-微專題10-同構(gòu)函數(shù)問題-專項(xiàng)訓(xùn)練【含答案】
- 2025年天津市政建設(shè)集團(tuán)招聘筆試參考題庫含答案解析
- 2024-2030年中國烘焙食品行業(yè)運(yùn)營效益及營銷前景預(yù)測報(bào)告
- 2025年上半年水利部長江水利委員會(huì)事業(yè)單位招聘68人(湖北武漢)重點(diǎn)基礎(chǔ)提升(共500題)附帶答案詳解
- 寧德時(shí)代筆試題庫
- 五年級下冊北京版英語單詞
- 康復(fù)醫(yī)院患者隱私保護(hù)管理制度
- 新課標(biāo)I、Ⅱ卷 (2024-2020) 近五年高考英語真題滿分作文
- 浙江省嘉興市2023-2024學(xué)年六年級(上)期末數(shù)學(xué)試卷
評論
0/150
提交評論