版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
云計(jì)算集群技術(shù)與應(yīng)用教學(xué)設(shè)計(jì)課程名稱(chēng):云計(jì)算集群技術(shù)與應(yīng)用__授課年級(jí):_______________________授課學(xué)期:_______________________教師姓名:_______________________年月日課程名稱(chēng)第1章集群基礎(chǔ)知識(shí)計(jì)劃學(xué)時(shí)2學(xué)時(shí)內(nèi)容分析本章主要介紹集群的概念、集群的特點(diǎn)、集群的分類(lèi)、負(fù)載均衡的相關(guān)介紹,以及服務(wù)器健康檢查。教學(xué)目標(biāo)與教學(xué)要求【知識(shí)目標(biāo)】理解集群的核心概念。理解集群的特點(diǎn)。理解集群的分類(lèi)。理解負(fù)載均衡的相關(guān)知識(shí)。了解服務(wù)器健康檢查?!炯寄苣繕?biāo)】理解并掌握集群的核心概念。理解并掌握的特點(diǎn)。理解并掌握集群的分類(lèi)。理解并掌握負(fù)載均衡的相關(guān)知識(shí)。【思政育人目標(biāo)】引導(dǎo)學(xué)生在學(xué)習(xí)中健全職業(yè)道德的規(guī)范。引導(dǎo)學(xué)生創(chuàng)新思維和探索的科學(xué)精神。培養(yǎng)學(xué)生愛(ài)崗敬業(yè)、遵紀(jì)守法的職業(yè)精神。教學(xué)重點(diǎn)集群的核心概念、負(fù)載均衡的分類(lèi)、四層合七層負(fù)載均衡的區(qū)別、負(fù)載均衡的主要方式教學(xué)難點(diǎn)負(fù)載均衡的主要方式、負(fù)載均衡的算法教學(xué)方式課堂講解配合ppt演示2學(xué)時(shí)教學(xué)過(guò)程第一學(xué)時(shí)(集群簡(jiǎn)介、集群的分類(lèi))一、提出需求,導(dǎo)入學(xué)習(xí)任務(wù)(1)思考集群技術(shù)與應(yīng)用的學(xué)習(xí)應(yīng)該從何入手。說(shuō)到集群,講一個(gè)例子幫助學(xué)生理解其概念。原先的飯店只有一個(gè)廚師,負(fù)責(zé)洗菜、切菜、備料、炒菜,飯店正常運(yùn)行,后來(lái)客人多了,一個(gè)廚師滿(mǎn)足不了上菜需求,于是老板又招了廚師,兩個(gè)廚師可以炒出同樣的菜,兩個(gè)廚師可以看作集群。隨著飯店規(guī)模和客流量的增多,還可以繼續(xù)招廚師,這些廚師就是一個(gè)集群。介紹集群基礎(chǔ)知識(shí),為以后的學(xué)習(xí)打下基礎(chǔ)。(2)明確學(xué)習(xí)方向。理解并掌握集群的核心概念。理解并掌握的特點(diǎn)。理解并掌握集群的分類(lèi)。理解并掌握負(fù)載均衡的相關(guān)知識(shí)。了解服務(wù)器健康檢查。二、知識(shí)講解(一)集群簡(jiǎn)介1.集群的核心概念(1)單機(jī)結(jié)構(gòu)的定義單機(jī)結(jié)構(gòu)是指所有應(yīng)用或服務(wù)部署到一臺(tái)服務(wù)器上。(2)集群的定義集群(Cluster)是指部署相同應(yīng)用或服務(wù)的一組(多臺(tái))服務(wù)器組成一個(gè)并行或者分布式系統(tǒng),作為一個(gè)整體向用戶(hù)提供網(wǎng)絡(luò)資源。組成集群的單個(gè)服務(wù)器為一個(gè)節(jié)點(diǎn)(Node),這些節(jié)點(diǎn)可以相互通信,協(xié)同為用戶(hù)提供相同的資源,一個(gè)節(jié)點(diǎn)的宕機(jī)并不影響其他節(jié)點(diǎn)的運(yùn)行和用戶(hù)使用。(3)負(fù)載均衡的定義負(fù)載均衡(LoadBalance,LB)是指將負(fù)載(工作任務(wù))分?jǐn)偨o到多個(gè)服務(wù)器上進(jìn)行執(zhí)行,如Web服務(wù)器、企業(yè)核心應(yīng)用服務(wù)器、FTP服務(wù)器等,協(xié)同處理工作任務(wù)。當(dāng)大量用戶(hù)請(qǐng)求集群系統(tǒng)時(shí),通過(guò)負(fù)載均衡器使得每個(gè)節(jié)點(diǎn)的負(fù)載情況比較平均,從而達(dá)到集群節(jié)點(diǎn)分擔(dān)流量的作用。(4)高可用高可用(HighAvailability,HA)是指保持服務(wù)的高可用性,即保證一個(gè)系統(tǒng)不會(huì)因一臺(tái)服務(wù)器發(fā)生故障或宕機(jī)而導(dǎo)致服務(wù)停止。如果某個(gè)節(jié)點(diǎn)服務(wù)器故障,負(fù)載均衡器則會(huì)將請(qǐng)求轉(zhuǎn)移到其他節(jié)點(diǎn)上,實(shí)現(xiàn)冗余接管,這就是系統(tǒng)的高可用。(5)分布式結(jié)構(gòu)分布式結(jié)構(gòu)是指將同一業(yè)務(wù)模塊分為多個(gè)(兩個(gè)以上)子任務(wù),部署到多個(gè)服務(wù)器上,即不同的業(yè)務(wù)模塊部署到不同的服務(wù)器上。2.集群的特點(diǎn)(1)高可用性和容錯(cuò)性(2)高性能(3)可擴(kuò)展性(4)成本相對(duì)較低(5)負(fù)載均衡(二)集群的分類(lèi)1.負(fù)載均衡集群負(fù)載均衡集群是指在使用一組應(yīng)用程序?yàn)榇罅靠蛻?hù)提供服務(wù)時(shí),通過(guò)若干前端負(fù)載均衡器將客戶(hù)請(qǐng)求分發(fā)到后端應(yīng)用集群服務(wù)器的技術(shù),各個(gè)節(jié)點(diǎn)的訪(fǎng)問(wèn)請(qǐng)求被動(dòng)態(tài)分配,達(dá)到整個(gè)系統(tǒng)的高可用和高性能。負(fù)載均衡集群的架構(gòu)如圖。2.高可用集群高可用集群是指以盡量減少服務(wù)中斷時(shí)間為目的的集群技術(shù),在任意一個(gè)節(jié)點(diǎn)失效時(shí),該節(jié)點(diǎn)所分配的所有工作任務(wù)將會(huì)自動(dòng)分配給其他可用節(jié)點(diǎn),保證集群正常運(yùn)行并提供服務(wù),保持業(yè)務(wù)的正常運(yùn)行。高可用性集群的架構(gòu)如圖。3.高性能計(jì)算集群高性能計(jì)算集群,又稱(chēng)科學(xué)計(jì)算集群,是指用于計(jì)算海量數(shù)據(jù),解決復(fù)雜問(wèn)題的技術(shù)三、知識(shí)鞏固(1)回顧上課前的學(xué)習(xí)目標(biāo),對(duì)本節(jié)課知識(shí)點(diǎn)進(jìn)行總結(jié)。(2)使用第一章課后作業(yè)。第二學(xué)時(shí)(負(fù)載均衡、服務(wù)器健康檢查)一、回顧上節(jié)課內(nèi)容(1)對(duì)上節(jié)課布置的作業(yè)以及學(xué)生提出的問(wèn)題進(jìn)行答疑解惑。(2)回顧上節(jié)課內(nèi)容,引出本節(jié)課主題。(3)明確學(xué)習(xí)方向。理解負(fù)載均衡的分類(lèi)。理解四層和七層負(fù)載均衡的區(qū)別。理解負(fù)載均衡的主要方式。理解負(fù)載均衡的算法了解服務(wù)器健康檢查二、知識(shí)講解(一)負(fù)載均衡1.負(fù)載均衡的分類(lèi)(1)負(fù)載均衡按軟硬件分類(lèi),軟件有Nginx、LVS、Amoeba、HAProxy等,硬件有ROSE、安瑞科技、F5、Citrix等。軟件類(lèi)的負(fù)載均衡是指在服務(wù)器相應(yīng)的操作系統(tǒng)上安裝軟件來(lái)實(shí)現(xiàn)負(fù)載均衡,配置簡(jiǎn)單,使用靈活;硬件類(lèi)的負(fù)載均衡是指在服務(wù)器和外部網(wǎng)絡(luò)之間安裝的負(fù)載均衡設(shè)備,整體性能高。負(fù)載均衡器按OSI七層模型可以分為二層、三層、四層、七層,具體如表。負(fù)載均衡OSI七層模型位置技術(shù)原理典型代表二層負(fù)載均衡數(shù)據(jù)鏈路層通過(guò)一個(gè)虛擬MAC地址接收請(qǐng)求,然后再分配到后端真實(shí)的MAC地址F5、LVSDR模式三層負(fù)載均衡網(wǎng)絡(luò)層通過(guò)一個(gè)虛擬IP地址接收請(qǐng)求,然后再分配到后端真實(shí)的IP地址LVSTUNNEL模式(IP隧道)四層負(fù)載均衡傳輸層通過(guò)虛擬IP+端口接收請(qǐng)求,然后再轉(zhuǎn)發(fā)到后端真實(shí)的服務(wù)器F5、LVSNAT、HAProxy、Nginx、SLB七層負(fù)載均衡應(yīng)用層通過(guò)虛擬的URL、IP或主機(jī)名接收請(qǐng)求,然后再轉(zhuǎn)發(fā)到后端真實(shí)的服務(wù)器F5、LVSNAT、HAProxy、Nginx、SLBDNS一個(gè)域名有多個(gè)A解析、智能解析萬(wàn)網(wǎng)、DNSPod(3)四層負(fù)載均衡四層負(fù)載均衡是基于IP和端口的負(fù)載均衡,即通過(guò)發(fā)布三層的IP地址(虛擬IP)和四層的端口號(hào),來(lái)對(duì)流量做負(fù)載均衡和分發(fā)處理,轉(zhuǎn)發(fā)到后端服務(wù)器,并且記錄該TCP或UDP協(xié)議的流量到達(dá)的服務(wù)器,下次仍由此臺(tái)服務(wù)器處理?;谒膶拥呢?fù)載均衡可達(dá)到每秒幾十萬(wàn)的處理量,效率更高。(4)七層負(fù)載均衡七層負(fù)載均衡是根據(jù)用戶(hù)請(qǐng)求的內(nèi)容等應(yīng)用層信息為其分配相對(duì)應(yīng)的后端服務(wù)器,在這種模式下可以在同一端口下同時(shí)運(yùn)行多個(gè)Web服務(wù)器。2.四層和七層負(fù)載均衡的區(qū)別(1)技術(shù)原理的區(qū)別四層負(fù)載均衡主要通過(guò)客戶(hù)端請(qǐng)求報(bào)文中的目標(biāo)地址和端口,再根據(jù)負(fù)載均衡器選擇的轉(zhuǎn)方式,決定最終的真實(shí)服務(wù)器。七層負(fù)載均衡主要通過(guò)報(bào)文中的應(yīng)用層信息,再根據(jù)負(fù)載均衡器選擇的轉(zhuǎn)發(fā)方式,決定最終的真實(shí)服務(wù)器。(2)應(yīng)用場(chǎng)景的需求四層負(fù)載均衡適用于TCP應(yīng)用。四層負(fù)載均衡比七層處理效率高,更適用于網(wǎng)絡(luò)吞吐量和并發(fā)量高的集群,可作為多種軟件的負(fù)載均衡器。七層負(fù)載均衡使得整個(gè)網(wǎng)絡(luò)更加“智能化”,功能多,控制靈活,可根據(jù)用戶(hù)訪(fǎng)問(wèn)內(nèi)容,將訪(fǎng)問(wèn)請(qǐng)求轉(zhuǎn)發(fā)到相應(yīng)服務(wù)器。(3)安全性四層負(fù)載均衡不能夠攔截SYN攻擊,會(huì)將攻擊轉(zhuǎn)發(fā)到后端服務(wù)器上,而七層負(fù)載均衡可以攔截SYN攻擊,不會(huì)影響后端服務(wù)器。七層負(fù)載均衡還可以設(shè)定安全策略,以過(guò)濾不安全報(bào)文。由此可見(jiàn),七層負(fù)載均衡比四層負(fù)載均衡安全性更高。3.負(fù)載均衡的主要方式(1)HTTP重定向HTTP重定向會(huì)根據(jù)客戶(hù)端應(yīng)用層的報(bào)文計(jì)算出一個(gè)真實(shí)的Web服務(wù)器IP地址,并將該IP地址寫(xiě)入HTTP重定向響應(yīng)中返回給客戶(hù)端,客戶(hù)端收到重定向響應(yīng)之后再去訪(fǎng)問(wèn)真實(shí)服務(wù)器,其工作原理如圖。(2)DNS方式DNS負(fù)責(zé)提供域名到IP解析的過(guò)程,這時(shí)DNS服務(wù)器也就充當(dāng)了負(fù)載均衡,很多域名運(yùn)營(yíng)商提供的智能DNS以及多線(xiàn)解析都是利用了DNS負(fù)載均衡的技術(shù),開(kāi)源的Bind軟件就可提供電信聯(lián)通多線(xiàn)解析等強(qiáng)大的技術(shù)。在DNS服務(wù)器上配置多個(gè)域名對(duì)應(yīng)IP的記錄,其工作原理如圖1.7所示(3)反向代理方式反向代理部署在Web服務(wù)器前面,提供負(fù)載均衡的功能,同時(shí)管理著一組Web服務(wù)器,根據(jù)負(fù)載均衡算法將訪(fǎng)問(wèn)請(qǐng)求轉(zhuǎn)發(fā)給不同的Web服務(wù)器,處理結(jié)果經(jīng)過(guò)反向代理返回給瀏覽器。工作原理如圖。(4)IP負(fù)載方式IP負(fù)載均衡是在網(wǎng)絡(luò)層和傳輸層(IP和端口)通過(guò)修改目標(biāo)地址進(jìn)行負(fù)載均衡,具體工作結(jié)構(gòu)如圖。(5)鏈路層負(fù)載方式網(wǎng)絡(luò)中的每臺(tái)設(shè)備都有一個(gè)唯一的網(wǎng)絡(luò)標(biāo)識(shí),這個(gè)地址叫MAC地址或網(wǎng)卡地址。數(shù)據(jù)鏈路層負(fù)載均衡是在數(shù)據(jù)鏈路層修改MAC地址進(jìn)行負(fù)載均衡,其工作原理如圖。4.負(fù)載均衡的算法(1)靜態(tài)負(fù)載均衡算法靜態(tài)負(fù)載均衡算法一般包括輪詢(xún)法、加權(quán)輪詢(xún)法、目標(biāo)地址哈希法、源地址哈希法。輪詢(xún)法輪詢(xún)調(diào)度算法(RoundRobinScheduling,RR),調(diào)度器采用這種算法時(shí),會(huì)將用戶(hù)請(qǐng)求無(wú)差別地按順序輪流分配到集群中的真實(shí)服務(wù)器上,不關(guān)心每個(gè)服務(wù)器上實(shí)際的連接數(shù)和當(dāng)前系統(tǒng)負(fù)載信息。加權(quán)輪詢(xún)法加權(quán)輪詢(xún)調(diào)度算法(WeightedRoundRobinScheduling,WRR),調(diào)度器采用這種算法時(shí),會(huì)將用戶(hù)請(qǐng)求按照真實(shí)服務(wù)器不同的處理能力進(jìn)行分配。給配置高、負(fù)載低的機(jī)器配置更高的權(quán)重,讓其處理更多的請(qǐng)求;而配置低、負(fù)載高的機(jī)器,給其分配較低的權(quán)重,降低其系統(tǒng)負(fù)載。按照權(quán)重進(jìn)行任務(wù)的調(diào)度,可以保證請(qǐng)求分配的合理性。目標(biāo)地址哈希法目標(biāo)地址哈希法(DestinationHashingScheduling,DH)是一種靜態(tài)映射算法,通過(guò)一個(gè)散列(Hash)函數(shù)將一個(gè)目標(biāo)IP地址映射到一臺(tái)服務(wù)器。服務(wù)器首先將用戶(hù)請(qǐng)求的目標(biāo)IP地址作為散列鍵(HashKey),再?gòu)撵o態(tài)分配的散列表找出對(duì)應(yīng)的服務(wù)器,如果該服務(wù)器是可用的且未超載,就將請(qǐng)求發(fā)送到該服務(wù)器,否則返回空。源地址哈希法源地址哈希法(SourceHashingScheduling,SH)也是一種靜態(tài)映射算法,通過(guò)一個(gè)散列(Hash)函數(shù)將一個(gè)源地址IP地址映射到一臺(tái)服務(wù)器。服務(wù)器首先將用戶(hù)請(qǐng)求的源IP地址(即客戶(hù)端地址)作為散列鍵(HashKey),再?gòu)撵o態(tài)分配的散列表找出對(duì)應(yīng)的服務(wù)器,如果該服務(wù)器是可用的且未超載,就將請(qǐng)求發(fā)送到該服務(wù)器,否則返回空。采用源地址哈希法進(jìn)行負(fù)載均衡,源地址一樣的請(qǐng)求都會(huì)被分配到同一臺(tái)服務(wù)器進(jìn)行處理,可以實(shí)現(xiàn)會(huì)話(huà)的粘滯性。為了幫助大家更好地理解這四種算法,此處一張表來(lái)對(duì)它們的優(yōu)缺點(diǎn)做對(duì)比說(shuō)明,具體如表。靜態(tài)負(fù)載均衡算法優(yōu)缺點(diǎn)對(duì)比表算法優(yōu)點(diǎn)缺點(diǎn)輪詢(xún)法簡(jiǎn)單高效,易于水平擴(kuò)展,每個(gè)服務(wù)器任務(wù)分配均衡無(wú)法保證任務(wù)分配的合理性,無(wú)法根據(jù)服務(wù)器承受能力來(lái)分配任務(wù)加權(quán)輪詢(xún)法可以將不同機(jī)器的性能問(wèn)題納入考量范圍,集群性能最優(yōu)最大化服務(wù)器抗壓能力無(wú)法精確估量,靜態(tài)算法導(dǎo)致無(wú)法實(shí)時(shí)動(dòng)態(tài)調(diào)整節(jié)點(diǎn)權(quán)重,只能粗糙優(yōu)化目標(biāo)地址哈希法根據(jù)用戶(hù)訪(fǎng)問(wèn)的URL的哈希結(jié)果,使每個(gè)URL定向到同一個(gè)后端服務(wù)器上,假如某一個(gè)目標(biāo)服務(wù)器不可以,或者負(fù)載過(guò)高,那么會(huì)影響發(fā)往該目標(biāo)服務(wù)器的請(qǐng)求無(wú)法得到響應(yīng)。源地址哈希法源地址一樣的請(qǐng)求都會(huì)被分配到同一臺(tái)服務(wù)器進(jìn)行處理,可以解決session會(huì)話(huà)共享的問(wèn)題,實(shí)現(xiàn)會(huì)話(huà)粘滯EQ\o\ac(○,1)由于用戶(hù)的活躍度不同,可能會(huì)有大量的活躍用戶(hù)被哈希到相同的服務(wù)器上,造成該服務(wù)器特別繁忙,大量的非活躍用戶(hù)被哈希到相同的服務(wù)器上,造成該服務(wù)器幾乎沒(méi)有請(qǐng)求,造成請(qǐng)求不均衡;EQ\o\ac(○,2)一旦某個(gè)服務(wù)器掛掉,那么哈希到該服務(wù)器的所有源請(qǐng)求都會(huì)失敗,直到服務(wù)恢復(fù)或者服務(wù)器列表中去掉該服務(wù)器(2)動(dòng)態(tài)負(fù)載均衡算法最小連接法最小連接法(LeastConnectionScheduling,LC),采用這種算法做負(fù)載均衡時(shí),調(diào)度器會(huì)根據(jù)每個(gè)真實(shí)服務(wù)器當(dāng)前的連接情況,動(dòng)態(tài)選取當(dāng)前連接數(shù)最小的服務(wù)器來(lái)處理當(dāng)前請(qǐng)求。最小連接法通過(guò)真實(shí)服務(wù)器當(dāng)前活躍的連接數(shù)來(lái)判斷真實(shí)服務(wù)器的情況,每當(dāng)真實(shí)服務(wù)器有新的連接或斷開(kāi)連接時(shí)都需要進(jìn)行計(jì)數(shù),調(diào)度器根據(jù)各個(gè)真實(shí)服務(wù)器的連接數(shù)合理進(jìn)行任務(wù)的分配。加權(quán)最小連接法加權(quán)最小連接法(WeightedLeastConnectionScheduling,WLC)在實(shí)現(xiàn)時(shí)增加了權(quán)重的計(jì)算,在LC算法的計(jì)算標(biāo)準(zhǔn)上除以權(quán)重,計(jì)算結(jié)果數(shù)值小的將接受下次訪(fǎng)問(wèn)請(qǐng)求,是企業(yè)最常用的算法也是LVS的默認(rèn)算法。采用這種算法時(shí),調(diào)度器可以自動(dòng)問(wèn)詢(xún)真實(shí)服務(wù)器的負(fù)載情況,并動(dòng)態(tài)調(diào)整其權(quán)值。基于局部性的最少鏈接法基于局部性的最少鏈接法(Locality-BasedLeastConnectionsScheduling,LBLC)類(lèi)似目標(biāo)地址哈希法,是針對(duì)目標(biāo)IP地址的負(fù)載均衡算法,調(diào)度器根據(jù)請(qǐng)求的目標(biāo)IP地址找出最近為該目標(biāo)IP地址服務(wù)的真實(shí)服務(wù)器,若該真實(shí)服務(wù)器是可用的且沒(méi)有超載,則將請(qǐng)求發(fā)送給該真實(shí)服務(wù)器,否則調(diào)度器將使用“最小連接”原則選出一個(gè)可用的真實(shí)服務(wù)器并將請(qǐng)求發(fā)送到該服務(wù)器,這種算法主要用于Cache集群系統(tǒng)。帶復(fù)制的基于局部性最少鏈接法帶復(fù)制的基于局部性最少鏈接法(Locality-BasedLeastConnectionswithReplicationScheduling,LBLCR)也是針對(duì)目標(biāo)IP地址的負(fù)載均衡,它與LBLC算法的不同之處是它維護(hù)的是從一個(gè)目標(biāo)IP地址到一組服務(wù)器的映射,而LBLC算法維護(hù)的是從一個(gè)目標(biāo)IP地址到一臺(tái)服務(wù)器的映射。(二)服務(wù)器健康檢查服務(wù)器的健康檢查是指負(fù)載均衡通過(guò)健康檢查判斷后端服務(wù)器是否可用。如果后端服務(wù)器異常,負(fù)載均衡將自動(dòng)把訪(fǎng)問(wèn)請(qǐng)求轉(zhuǎn)發(fā)到其他健康的服務(wù)器上;當(dāng)異常服務(wù)器恢復(fù)正常時(shí),負(fù)載均衡會(huì)自動(dòng)將該服務(wù)器加入集群,繼續(xù)服務(wù)。服務(wù)器健康檢測(cè)技術(shù)主要講解以下3種。1.HTTP/HTTPS監(jiān)聽(tīng)健康檢查機(jī)制在七層負(fù)載均衡模式下,負(fù)載均衡器向后端轉(zhuǎn)發(fā)HTTP請(qǐng)求,健康檢查通過(guò)HTTPHEAD請(qǐng)求獲取狀態(tài)信息,后端服務(wù)器收到請(qǐng)求后,根據(jù)業(yè)務(wù)的運(yùn)行狀況,返回HTTP狀態(tài)碼。2.ICMP監(jiān)聽(tīng)健康檢查機(jī)制負(fù)載均衡器向后端服務(wù)器發(fā)送ICMPEcho包,即ping的方式,若后端服務(wù)器可以正常收到ICMPReply,那么服務(wù)器ICMO協(xié)議處理正常,即服務(wù)器是“活的。3.TCP監(jiān)聽(tīng)健康檢查機(jī)制負(fù)載均衡器向后端服務(wù)器的相應(yīng)端口發(fā)送TCP連接請(qǐng)求,如果三次握手成功建立,那么服務(wù)器TCP協(xié)議處理正常。除此3種服務(wù)器健康檢測(cè)方式,還可以發(fā)送UDP、FTP、DNS、SSL等協(xié)議包通過(guò)是否收到正確的應(yīng)答來(lái)檢查服務(wù)器是否存活。服務(wù)器的健康檢測(cè)在集群系統(tǒng)中有著至關(guān)重要的作用,有利于維護(hù)系統(tǒng)的高可用。三、知識(shí)鞏固(1)回顧上課前的學(xué)習(xí)目標(biāo),對(duì)本節(jié)課知識(shí)點(diǎn)進(jìn)行總結(jié)。(2)使用第一章課后作業(yè)。習(xí)題教材第1章習(xí)題教學(xué)后記云計(jì)算集群技術(shù)與應(yīng)用教學(xué)設(shè)計(jì)課程名稱(chēng):云計(jì)算集群技術(shù)與應(yīng)用__授課年級(jí):_______________________授課學(xué)期:_______________________教師姓名:_______________________年月日課程名稱(chēng)第2章Web服務(wù)集群計(jì)劃學(xué)時(shí)6學(xué)時(shí)內(nèi)容分析本章主要介紹Web服務(wù)集群的相關(guān)知識(shí),包含搭建LAMP平臺(tái),搭建LNMP平臺(tái),Nginx做負(fù)載均衡,以及Web集群實(shí)戰(zhàn)案例。教學(xué)目標(biāo)與教學(xué)要求【知識(shí)目標(biāo)】理解Web服務(wù)集群。理解LAMP和LNMP。理解Nginx做負(fù)載均衡的相關(guān)知識(shí)。【技能目標(biāo)】掌握LAMP和LNMP的部署。掌握部署Nginx負(fù)載均衡器。掌握構(gòu)建Web集群的基本能力?!舅颊四繕?biāo)】針對(duì)文件配置和算法設(shè)計(jì),需要精益求精,大力弘揚(yáng)工匠精神;。引導(dǎo)學(xué)生樹(shù)立刻苦鉆研的“釘子”精神培養(yǎng)學(xué)生扎實(shí)穩(wěn)打,迎難而上的性格。針對(duì)日常運(yùn)維,培養(yǎng)從小事中發(fā)現(xiàn)、分析問(wèn)題的科學(xué)思維觀。教學(xué)重點(diǎn)部署LAMP平臺(tái),部署LNMP平臺(tái),以Nginx做負(fù)載均衡,Web集群實(shí)戰(zhàn)案例教學(xué)難點(diǎn)以Nginx做負(fù)載均衡,Web集群實(shí)戰(zhàn)案例教學(xué)方式課堂講解配合ppt演示3學(xué)時(shí),上機(jī)演練3學(xué)時(shí)教學(xué)過(guò)程第一學(xué)時(shí)(Web服務(wù)集群簡(jiǎn)介、搭建LAMP平臺(tái))一、提出需求,導(dǎo)入學(xué)習(xí)任務(wù)(1)思考Web集群的學(xué)習(xí)應(yīng)該從何入手。大家所熟悉的博客、論壇等網(wǎng)站,其特點(diǎn)就是用戶(hù)群體較大。當(dāng)Web服務(wù)器直接面向客戶(hù)端時(shí),服務(wù)器往往要承載大量并發(fā)請(qǐng)求,單臺(tái)服務(wù)器難以負(fù)荷。為了應(yīng)對(duì)以上問(wèn)題,其中的辦法之一,可以配置多臺(tái)Web服務(wù)器組成集群,以擴(kuò)展架構(gòu)的穩(wěn)定性和可擴(kuò)展性,承載更多的并發(fā)量以及提高用戶(hù)的訪(fǎng)問(wèn)速度。(2)明確學(xué)習(xí)方向。理解Web服務(wù)集群簡(jiǎn)介。理解并掌握搭建LAMP平臺(tái)。二、知識(shí)講解(一)Web服務(wù)集群簡(jiǎn)介1.概念Web服務(wù)集群是指配置若干(兩臺(tái)及以上)臺(tái)Web服務(wù)器組成一個(gè)系統(tǒng),作為一個(gè)整體為用戶(hù)提供Web服務(wù)。在Web集群環(huán)境中,前端使用負(fù)載均衡,將用戶(hù)請(qǐng)求的流量按照算法分散地移交到后端Web服務(wù)器集群中,實(shí)現(xiàn)請(qǐng)求的分發(fā),將會(huì)大大提升系統(tǒng)的吞吐量與請(qǐng)求性能。2.Web服務(wù)器Web服務(wù)器又稱(chēng)為網(wǎng)站服務(wù)器,能夠處理瀏覽器等客戶(hù)端的請(qǐng)求然后返回相應(yīng)結(jié)果,Web服務(wù)器可提供瀏覽類(lèi)網(wǎng)站文件,又可提供下載類(lèi)數(shù)據(jù)文件。當(dāng)前主流的Web服務(wù)器有Apache、Nginx、IIS,在云端Web類(lèi)應(yīng)用中,使用率可達(dá)95%以上。3.Web集群基礎(chǔ)架構(gòu)(二)搭建LAMP平臺(tái)1.LAMP簡(jiǎn)介在LAMP中,Linux是自由和開(kāi)放源碼的類(lèi)Unix操作系統(tǒng),可安裝在各種計(jì)算機(jī)硬件設(shè)備中。Apache是最受歡迎的一個(gè)開(kāi)放源碼的Web服務(wù)器軟件,強(qiáng)大且實(shí)用。M可以是多線(xiàn)程、多用戶(hù)的SQL數(shù)據(jù)庫(kù)管理系統(tǒng)MySQL,也可以是MariaDB。P一般是指PHP、Perl或Python等腳本語(yǔ)言,其中PHP是一種編程語(yǔ)言,最初用來(lái)設(shè)計(jì)生產(chǎn)動(dòng)態(tài)網(wǎng)站,主要用于服務(wù)器端的應(yīng)用程序軟件。(1)LAMP可以是LinuxApacheMySQLPHP的簡(jiǎn)寫(xiě),其實(shí)就是把Apache、MySQL以及PHP安裝在Linux系統(tǒng)上,來(lái)運(yùn)行動(dòng)態(tài)網(wǎng)站或者服務(wù)器,是比較常用的Web搭建框架。(2)LAMP的工作原理2.實(shí)驗(yàn)的準(zhǔn)備環(huán)境本書(shū)全部實(shí)驗(yàn)使用虛擬機(jī)代替物理服務(wù)器,在虛擬環(huán)境下的Linux操作系統(tǒng)中進(jìn)行,實(shí)驗(yàn)所用操作系統(tǒng)版本為CentOS7.6。CentOS7自帶Firewalld和SELinux守護(hù)工具,一外一內(nèi),保證系統(tǒng)的安全。(1)查看系統(tǒng)版本號(hào)。(2)關(guān)閉CentOS7默認(rèn)防火墻Firewalld。(3)關(guān)閉SELinux3.LAMP的部署及測(cè)試準(zhǔn)備1臺(tái)VM虛擬機(jī)搭建LAMP平臺(tái)。HostNameIP說(shuō)明web139搭建LAMP框架(1)Apache的安裝與測(cè)試安裝Apache[root@web1~]#yum-yinstallhttpd查看Apache版本[root@web1~]#httpd-vServerversion:Apache/2.4.6(CentOS)Serverbuilt:Nov10202114:41:18啟動(dòng)Apache服務(wù)并設(shè)置開(kāi)機(jī)自啟[root@web1~]#systemctlstarthttpd[root@web1~]#systemctlenablehttpd驗(yàn)證Apache服務(wù)是否安裝成功在本機(jī)瀏覽器中輸入虛擬機(jī)的IP地址,如果看到Apache默認(rèn)的測(cè)試頁(yè)面,說(shuō)明Apache服務(wù)成功運(yùn)行。測(cè)試Apache是否能解析常見(jiàn)的動(dòng)靜態(tài)頁(yè)面(2)PHP的安裝與測(cè)試安裝PHP[root@web1html]#yum-yinstallphp重啟Apache服務(wù)[root@web1html]#systemctlrestarthttpd再次訪(fǎng)問(wèn)index.php(3)數(shù)據(jù)庫(kù)的安裝與測(cè)試安裝MariaDB客戶(hù)端與服務(wù)端[root@web1~]#yum-yinstallmariadbmariadb-server更改數(shù)據(jù)庫(kù)密碼。[root@web1~]#mysql_secure_installation登錄數(shù)據(jù)庫(kù)測(cè)試[root@web1~]#mysql-uroot-p123測(cè)試PHP與數(shù)據(jù)庫(kù)是否連通查看PHP的拓展模塊[root@web1~]#php-m|grepmysql安裝php-mysql[root@web1~]#yum-yinstallphp-mysql再次查看PHP的拓展模塊重啟Apache服務(wù)再次在瀏覽器上訪(fǎng)問(wèn)linktest.php三、知識(shí)鞏固(1)回顧上課前的學(xué)習(xí)目標(biāo),對(duì)本節(jié)課知識(shí)點(diǎn)進(jìn)行總結(jié)。(2)使用第2章課后作業(yè)。第二學(xué)時(shí)(上機(jī)練習(xí)-LAMP的部署及測(cè)試)一、目標(biāo)學(xué)生根據(jù)教材中的操作步驟和教師的演示進(jìn)行上機(jī)練習(xí),以此練習(xí)LAMP的部署等相關(guān)知識(shí),以及檢查學(xué)生對(duì)相關(guān)知識(shí)點(diǎn)的掌握情況。上機(jī)練習(xí)完成后將報(bào)告通過(guò)平臺(tái)提交給老師。二、上機(jī)任務(wù)1.在單機(jī)環(huán)境下部署LAMP環(huán)境安裝Apache安裝PHP或Python安裝MySQL或者M(jìn)ariaDB三、教師評(píng)分教師根據(jù)學(xué)生對(duì)上機(jī)任務(wù)的完成度給予評(píng)分,滿(mǎn)分為4分,并納入平時(shí)成績(jī)中。第三學(xué)時(shí)(搭建LNMP平臺(tái)、Nginx-負(fù)載均衡)一、回顧上節(jié)課內(nèi)容(1)對(duì)上節(jié)課布置的作業(yè)以及學(xué)生提出的問(wèn)題進(jìn)行答疑解惑。(2)回顧上節(jié)課內(nèi)容,引出本節(jié)課主題。(3)明確學(xué)習(xí)方向。理解并掌握搭建LNMP平臺(tái)。理解Nginx做方向代理和負(fù)載均衡。了解Nginx負(fù)載均衡的優(yōu)缺點(diǎn)。了解Nginx負(fù)載均衡后端狀態(tài)。理解Nginx負(fù)載均衡的應(yīng)用。二、知識(shí)講解(一)搭建LNMP平臺(tái)1.LNMP簡(jiǎn)介(1)LAMP是LinuxNginxMySQLPHP的簡(jiǎn)寫(xiě),即把Nginx、MySQL以及PHP安裝在Linux系統(tǒng)上,組成一個(gè)高效、免費(fèi)、高擴(kuò)展的網(wǎng)站服務(wù)系統(tǒng),是國(guó)內(nèi)大中型互聯(lián)網(wǎng)公司網(wǎng)站常用的Web搭建框架。(2)LAMP中是以Apache作為Web服務(wù)器與客戶(hù)端瀏覽器進(jìn)行交互,顧名思義,在LNMP環(huán)境中,是以Nginx作為Web服務(wù)器。Nginx(enginex)是一款高性能、輕量級(jí)的Web服務(wù)器,是一款反向代理服務(wù)器,也是一款郵箱代理服務(wù)器(IMAP/POP3/SMTP),具有性能優(yōu)越、功能豐富、占有內(nèi)存少等優(yōu)點(diǎn)。(3)LNMP的工作原理。2.LNMP的分離部署及測(cè)試在本案例中準(zhǔn)備兩臺(tái)VM虛擬機(jī)(或物理服務(wù)器),分離部署LNMP環(huán)境,如表。HostNameIP說(shuō)明web139應(yīng)用程序及文件服務(wù)器db140數(shù)據(jù)庫(kù)服務(wù)器(1)部署Nginx—應(yīng)用服務(wù)器(1)Nginx的安裝。[root@web1~]#yum-yinstallnginx啟動(dòng)Nginx服務(wù),并設(shè)置該項(xiàng)服務(wù)開(kāi)機(jī)自啟。[root@web1~]#systemctlstartnginx[root@web1~]#systemctlenablenginx檢查Nginx是否正常工作在80端口。[root@web1~]#netstat-unltp|grep80打開(kāi)瀏覽器,輸入IP,即可看到Nginx的歡迎界面。測(cè)試Nginx是否能解析常見(jiàn)的動(dòng)靜態(tài)頁(yè)面。(2)部署PHP-FPM—應(yīng)用服務(wù)器(39)Nginx不支持對(duì)外部動(dòng)態(tài)程序的直接調(diào)用或者解析,所有的外部程序(包括PHP)必須通過(guò)FastCGI接口來(lái)調(diào)用。想要讓服務(wù)器可以處理PHP文件,則必須安裝PHP-FPM。下載安裝PHP-FPM及相關(guān)插件[root@web1~]#yuminstall-yphp-fpmphp-mysqlphp-gdPHP-FPM安裝完成后,將其開(kāi)啟并設(shè)置其開(kāi)機(jī)自啟。[root@web1~]#systemctlstartphp-fpm[root@web1~]#systemctlenablephp-fpmPHP正常工作在9000端口,查看PHP-FPM的進(jìn)程信息。[root@qfedu~]#netstat-anpt|grepphp-fpm將.php文件加入網(wǎng)站處理的范圍,更新網(wǎng)站接收的文件類(lèi)型。#在Nginx配置文件的Server模塊內(nèi)進(jìn)行添加即可。[root@web1~]#vim/etc/nginx/conf.d/default.confserver{listen80;server_namelocalhost;location/{root/usr/share/nginx/html;indexindex.htmlindex.htmindex.php;}#省略部分代碼}在其配置文件的Server模塊啟用nginx_fastcgi功能,修改其調(diào)用路徑。location~\.php${root/usr/share/nginx/html;fastcgi_pass:9000;fastcgi_indexindex.php;fastcgi_paramSCRIPT_FILENAME/$document_root$fastcgi_script_name;includefastcgi_params;}再次重啟Nginx,訪(fǎng)問(wèn)測(cè)試文件index.php。3.部署數(shù)據(jù)庫(kù)—數(shù)據(jù)庫(kù)服務(wù)器(40)安裝MariaDB客戶(hù)端與服務(wù)端[root@db1~]#yum-yinstallmariadbmariadb-server啟動(dòng)MariaDB服務(wù),并設(shè)置其開(kāi)機(jī)自啟更改數(shù)據(jù)庫(kù)密碼登陸數(shù)據(jù)庫(kù)測(cè)試,并授予應(yīng)用服務(wù)器操作權(quán)限[root@db1~]#mysql-uroot-p123……MariaDB[(none)]>grantallon*.*toroot@'39'identifiedby'123';QueryOK,0rowsaffected(0.00sec)MariaDB[(none)]>flushprivileges;QueryOK,0rowsaffected(0.00sec)在網(wǎng)站默認(rèn)目錄下創(chuàng)建文件link.php[root@db1~]#cat/usr/share/nginx/html/link.php<?php$link=mysql_connect('2','root','123');if($link)echo"Successfully";elseecho"Fail";mysql_close();?>在瀏覽器中訪(fǎng)問(wèn)link.php(二)Nginx-負(fù)載均衡1.反向代理與負(fù)載均衡(1)Nginx不僅是一款優(yōu)秀的Web軟件,還可以作為七層代理和負(fù)載均衡。(2)代理服務(wù)器(ProxyServer)是網(wǎng)絡(luò)信息的中轉(zhuǎn)站,是個(gè)人網(wǎng)絡(luò)和Internet服務(wù)商之間的中間代理機(jī)構(gòu),負(fù)責(zé)轉(zhuǎn)發(fā)合法的網(wǎng)絡(luò)信息,對(duì)轉(zhuǎn)發(fā)進(jìn)行控制和登記。正向代理是處于客戶(hù)端與服務(wù)端之間的代理節(jié)點(diǎn)。反向代理同樣是處于客戶(hù)端與服務(wù)端之間的代理節(jié)點(diǎn),與正向代理不同的是,反向代理是服務(wù)于客戶(hù)端的代理節(jié)點(diǎn)。2.Nginx負(fù)載均衡的優(yōu)缺點(diǎn)(1)Nginx作為負(fù)載均衡具備如下特點(diǎn)。作為開(kāi)源軟件,功能強(qiáng)大,性能卓越,運(yùn)行穩(wěn)定。配置文件簡(jiǎn)單靈活。有內(nèi)置的健康檢查功能,能夠自動(dòng)剔除工作不正常的后端服務(wù)器。上傳文件使用異步模式。支持多種分配策略,可以分配權(quán)重,分配方式靈活。(2)Nginx作為負(fù)載均衡的優(yōu)缺點(diǎn)如下所示。優(yōu)點(diǎn)Nginx可以復(fù)制用戶(hù)請(qǐng)求。Nginx可以根據(jù)域名、URL識(shí)別用戶(hù)的請(qǐng)求類(lèi)型,因此Nginx可以做動(dòng)靜分離。Nginx為開(kāi)源軟件,可以免費(fèi)使用。缺點(diǎn)Nginx不僅要把用戶(hù)的請(qǐng)求發(fā)送給后端真實(shí)服務(wù)器,還要將后端真實(shí)服務(wù)器返回的頁(yè)面發(fā)送給用戶(hù),流量會(huì)經(jīng)過(guò)Nginx,所以Nginx可能成為瓶頸。3.Nginx負(fù)載均衡算法輪詢(xún)算法(RoundRobin,簡(jiǎn)稱(chēng)RR)加權(quán)輪詢(xún)算法(WeightRoundRobin,簡(jiǎn)稱(chēng)WRR)IP_hash算法fair公平算法URL_hash算法4.Nginx負(fù)載均衡后端狀態(tài)后端Web服務(wù)器在前端Nginx負(fù)載均衡調(diào)度中的狀態(tài),主要有以下幾種。down:表示當(dāng)前的服務(wù)器暫時(shí)不參與負(fù)載。weight:默認(rèn)值為1。weight值越大,負(fù)載的權(quán)重就越大。max_fails:表示允許請(qǐng)求失敗的次數(shù),默認(rèn)值為1。fail_timeout:達(dá)到max_fails所指定的失敗次數(shù)后需要暫停的時(shí)間。backup:所有的非backup狀態(tài)的服務(wù)器,down或者壓力很大時(shí),backup服務(wù)器將會(huì)開(kāi)始接受請(qǐng)求,所以這臺(tái)服務(wù)器壓力會(huì)最小。client_body_in_file_only:設(shè)置為on可以將客戶(hù)端上傳的數(shù)據(jù)記錄到文件中用來(lái)做調(diào)試。client_body_temp_path:設(shè)置記錄文件的目錄,最多可以設(shè)置3層目錄。Location:對(duì)URL進(jìn)行匹配,可以進(jìn)行重定向或者進(jìn)行新的負(fù)載均衡。5.Nginx負(fù)載均衡的應(yīng)用實(shí)際上,對(duì)于用戶(hù)訪(fǎng)問(wèn)量不大的小型企業(yè)來(lái)說(shuō),一般用不到負(fù)載均衡。訪(fǎng)問(wèn)流量一般的中型企業(yè),通常只做四層負(fù)載均衡或七層負(fù)載均衡中的一種。而一些大型企業(yè)中,每時(shí)每刻訪(fǎng)問(wèn)量都非常大,通常四、七層負(fù)載均衡都會(huì)做,常見(jiàn)的負(fù)載架構(gòu)如圖。三、知識(shí)鞏固(1)回顧上課前的學(xué)習(xí)目標(biāo),對(duì)本節(jié)課知識(shí)點(diǎn)進(jìn)行總結(jié)。(2)使用第2章課后作業(yè)。第四學(xué)時(shí)(上機(jī)練習(xí)-LNMP的分離部署及測(cè)試)一、目標(biāo)學(xué)生根據(jù)教材中的操作步驟和教師的演示進(jìn)行上機(jī)練習(xí),以此練習(xí)LNMP的分離部署等相關(guān)知識(shí),以及檢查學(xué)生對(duì)相關(guān)知識(shí)點(diǎn)的掌握情況。上機(jī)練習(xí)完成后將報(bào)告通過(guò)平臺(tái)提交給老師。二、上機(jī)任務(wù)1.準(zhǔn)備兩臺(tái)VM虛擬機(jī)(或物理服務(wù)器),分離部署LNMP環(huán)境安裝部署Nginx安裝部署PHP-FPM安裝部署數(shù)據(jù)庫(kù)三、教師評(píng)分教師根據(jù)學(xué)生對(duì)上機(jī)任務(wù)的完成度給予評(píng)分,滿(mǎn)分為4分,并納入平時(shí)成績(jī)中。第五學(xué)時(shí)(Web集群實(shí)戰(zhàn)案例-業(yè)務(wù)上線(xiàn))一、回顧上節(jié)課內(nèi)容(1)對(duì)上節(jié)課布置的作業(yè)以及學(xué)生提出的問(wèn)題進(jìn)行答疑解惑。(2)回顧上節(jié)課內(nèi)容,引出本節(jié)課主題。(3)明確學(xué)習(xí)方向。理解并掌握集群架構(gòu)的設(shè)計(jì)。掌握部署數(shù)據(jù)庫(kù)掌握在應(yīng)用服務(wù)器上線(xiàn)業(yè)務(wù)。掌握部署Nginx負(fù)載均衡。二、知識(shí)講解工作原理在負(fù)載均衡集群中,Web服務(wù)集群的所有服務(wù)器節(jié)點(diǎn)想客戶(hù)端提供相同的服務(wù)。集群負(fù)載均衡器則會(huì)接收用戶(hù)的入站請(qǐng)求,然后將請(qǐng)求分?jǐn)偨o后端的Web服務(wù)集群。這樣即可實(shí)現(xiàn)負(fù)載均衡的功能,以提升系統(tǒng)的吞吐量、請(qǐng)求性能、高容災(zāi)。本節(jié)的案例中,將Nginx作為負(fù)載均衡器,也是反向代理服務(wù)器,在Web集群上部署博客應(yīng)用,其工作原理如圖。準(zhǔn)備環(huán)境準(zhǔn)備4臺(tái)VM虛擬機(jī)(或者物理服務(wù)器),一臺(tái)做負(fù)載均衡器,兩臺(tái)Web服務(wù)器做集群,一臺(tái)做數(shù)據(jù)庫(kù)服務(wù)器。HostNameIP說(shuō)明lb139Nginx負(fù)載均衡器web140Web服務(wù)器部署論壇應(yīng)用web241Web服務(wù)器部署論壇應(yīng)用db142數(shù)據(jù)庫(kù)服務(wù)器(1)同步時(shí)間(詳見(jiàn)第2章PPT)(2)域名解析部署數(shù)據(jù)庫(kù)—數(shù)據(jù)庫(kù)服務(wù)器(42)安裝MariaDB客戶(hù)端與服務(wù)端,具體如下所示。[root@db1~]#yum-yinstallmariadbmariadb-server啟動(dòng)MariaDB服務(wù),并設(shè)置其開(kāi)機(jī)自啟。進(jìn)入數(shù)據(jù)庫(kù)安全設(shè)置模式,更改數(shù)據(jù)庫(kù)密碼登錄數(shù)據(jù)庫(kù),授予Web服務(wù)器操作權(quán)限,然后創(chuàng)建網(wǎng)站數(shù)據(jù)庫(kù)。[root@db1~]#mysql-uroot-p123……MariaDB[(none)]>grantallon*.*toroot@'40'identifiedby'123';QueryOK,0rowsaffected(0.00sec)MariaDB[(none)]>grantallon*.*toroot@'41'identifiedby'123';QueryOK,0rowsaffected(0.00sec)#創(chuàng)建discuz數(shù)據(jù)庫(kù),做Web集群的數(shù)據(jù)庫(kù)MariaDB[(none)]>createdatabasediscuz;QueryOK,1rowaffected(0.21sec)MariaDB[(none)]>flushprivileges;QueryOK,0rowsaffected(0.06sec)論壇業(yè)務(wù)上線(xiàn)(詳細(xì)步驟見(jiàn)第2章PPT)1.兩臺(tái)Web服務(wù)器上搭建LNMP環(huán)境首先安裝Nginx,并設(shè)置為開(kāi)機(jī)自啟。[root@web1~]#yuminstall-ynginx[root@web1~]#systemctlstartnginx[root@web1~]#systemctlenablenginx檢查Nginx是否正常工作在80端口。下載安裝PHP-FPM及相關(guān)插件。PHP-FPM安裝完成后,將其開(kāi)啟并設(shè)置其開(kāi)機(jī)自啟。將.php文件加入網(wǎng)站處理的范圍,更新網(wǎng)站接收的文件類(lèi)型。2.在Web應(yīng)用服務(wù)器中通過(guò)Discuz項(xiàng)目包模擬需要上線(xiàn)的軟件包,Discuz項(xiàng)目包可以通過(guò)Discuz官方網(wǎng)站獲取。將獲取的項(xiàng)目包放到/tmp目錄之后進(jìn)行解壓。[root@web1tmp]#unzipDiscuz_X3.4_SC_UTF8.zip為保證業(yè)務(wù)正常上線(xiàn),將html目錄下的文件刪除。將軟件包目錄下所有文件備份到頁(yè)面路徑下。授予該路徑相應(yīng)的權(quán)限。有了執(zhí)行權(quán)限,業(yè)務(wù)就可以在線(xiàn)上運(yùn)行。重新啟動(dòng)Nginx服務(wù),即可訪(fǎng)問(wèn)到該業(yè)務(wù)。單擊“我同意”按鈕,進(jìn)入論壇安裝頁(yè)面若出現(xiàn)部分文件不可寫(xiě)的情況,可以通過(guò)終端對(duì)項(xiàng)目文件與目錄授予相關(guān)權(quán)限。單擊“下一步”按鈕,設(shè)置運(yùn)行環(huán)境選擇“全新安裝”并單擊“下一步”按鈕,開(kāi)始填寫(xiě)數(shù)據(jù)庫(kù)與網(wǎng)站管理員信息填寫(xiě)完成之后,單擊“下一步”按鈕開(kāi)始安裝論壇繼續(xù)訪(fǎng)問(wèn)頁(yè)面。將Web1中的網(wǎng)站資源備份到Web2中。[root@web1~]#scp-r/usr/share/nginx/html/*11:/usr/share/nginx/html/通過(guò)web2終端對(duì)各文件與目錄授予相關(guān)權(quán)限。[root@web2html]#chmod-R777/usr/share/nginx/html/*至此,Web真實(shí)服務(wù)器的論壇業(yè)務(wù)已成功上線(xiàn)。部署負(fù)載均衡—Nginx—(負(fù)載均衡器(39))Windows本地hosts文件的位置在C:\Windows\System32\drivers\etc中,以記事本的方式打開(kāi)hosts文件,追加以下內(nèi)容即可。39在服務(wù)器上安裝EPEL源。[root@lb1~]#yum-yinstallepel-releaseEPEL源安裝完成后,可以使用ls命令查看服務(wù)器現(xiàn)有源,若出現(xiàn)epel.repo,說(shuō)明EPEL源成功安裝。[root@lb1~]#ls/etc/yum.repos.dCentOS-Base.repoepel.repo接下來(lái)使用Yum的方式獲取Nginx。[root@lb1~]#yum-yinstallnginx安裝Nginx后,編輯其配置文件/etc/nginx/nginx.conf,添加相關(guān)的服務(wù)器組。[root@lb1~]#vim/etc/nginx/nginx.conf#注意更改的位置!http{······此處省略部分代碼······server{······此處省略部分代碼······#引用服務(wù)器組location/{proxy_passhttp://html;proxy_set_headerHost$host;proxy_set_headerX-Real-IP$remote_addr;proxy_set_headerREMOTE-HOST$remote_addr;proxy_set_headerX-Forwarded-For$proxy_add_x_forwarded_for;}······此處省略部分代碼······}#配置服務(wù)器組upstreamhtml{ serverweb1:80weight=5; serverweb2:80weight=5;}}配置完成后啟動(dòng)Nginx。[root@lb1~]#systemctlstartnginx至此,負(fù)載均衡器配置完成。實(shí)現(xiàn)Web服務(wù)負(fù)載均衡(詳細(xì)步驟見(jiàn)第2章PPT)1.由于Web服務(wù)集群中的負(fù)載均衡器已經(jīng)設(shè)置好了域名,那么使用Windows瀏覽器訪(fǎng)問(wèn)或網(wǎng)站(即Nginx負(fù)載均衡器的IP)可訪(fǎng)問(wèn)Web集群。2.強(qiáng)制刷新瀏覽器,再次訪(fǎng)問(wèn)網(wǎng)站,可通過(guò)訪(fǎng)問(wèn)web1和web2的access.log查看客戶(hù)端請(qǐng)求的信息。3.在web1和web2使用tail命令加-f參數(shù)可動(dòng)態(tài)查看正在修改的文件,具體如下所示。[root@web1nginx]#tail-f/var/log/nginx/access.log4.刷新瀏覽器,再次訪(fǎng)問(wèn)網(wǎng)站,訪(fǎng)問(wèn)結(jié)果如圖。5.刷新瀏覽器,再次訪(fǎng)問(wèn)網(wǎng)站,訪(fǎng)問(wèn)結(jié)果如圖。從兩次的訪(fǎng)問(wèn)結(jié)果可以看到網(wǎng)站兩次訪(fǎng)問(wèn)的結(jié)果發(fā)生了變動(dòng),這是因?yàn)榈谝淮握?qǐng)求到來(lái)時(shí),調(diào)度器將請(qǐng)求分配給了第一臺(tái)真實(shí)服務(wù)器進(jìn)行處理;第二次請(qǐng)求到來(lái)時(shí),調(diào)度器按默認(rèn)(輪詢(xún))算法將請(qǐng)求分配給了第二臺(tái)真實(shí)服務(wù)器進(jìn)行處理,實(shí)現(xiàn)了系統(tǒng)的負(fù)載均衡。若后端真實(shí)服務(wù)器集群中有更多的機(jī)器,則會(huì)有更多的機(jī)器按順序循環(huán)參與工作。三、知識(shí)鞏固(1)回顧上課前的學(xué)習(xí)目標(biāo),對(duì)本節(jié)課知識(shí)點(diǎn)進(jìn)行總結(jié)。(2)使用第2章課后作業(yè)。第六學(xué)時(shí)(上機(jī)練習(xí)-Web集群實(shí)戰(zhàn)案例-業(yè)務(wù)上線(xiàn))一、目標(biāo)學(xué)生根據(jù)教材中的操作步驟和教師的演示進(jìn)行上機(jī)練習(xí),以此練習(xí)Web集群實(shí)戰(zhàn)案例-業(yè)務(wù)上線(xiàn)等相關(guān)知識(shí),以及檢查學(xué)生對(duì)相關(guān)知識(shí)點(diǎn)的掌握情況。上機(jī)練習(xí)完成后將報(bào)告通過(guò)平臺(tái)提交給老師。二、上機(jī)任務(wù)1.將Nginx作為負(fù)載均衡器,也是反向代理服務(wù)器,在Web集群上部署博客應(yīng)用。其工作原理如圖。所有用戶(hù)的請(qǐng)求統(tǒng)一發(fā)送到Nginx負(fù)載均衡器,然后根據(jù)負(fù)載均衡器的調(diào)度算法請(qǐng)求訪(fǎng)問(wèn)web1和web2。準(zhǔn)備4臺(tái)VM虛擬機(jī)(或者物理服務(wù)器),一臺(tái)做負(fù)載均衡器,兩臺(tái)Web服務(wù)器做集群,一臺(tái)做數(shù)據(jù)庫(kù)服務(wù)器,具體如表。HostNameIP說(shuō)明lb139Nginx負(fù)載均衡器web140Web服務(wù)器部署論壇應(yīng)用web241Web服務(wù)器部署論壇應(yīng)用db142數(shù)據(jù)庫(kù)服務(wù)器三、教師評(píng)分教師根據(jù)學(xué)生對(duì)上機(jī)任務(wù)的完成度給予評(píng)分,滿(mǎn)分為4分,并納入平時(shí)成績(jī)中。習(xí)題教材第2章習(xí)題教學(xué)后記云計(jì)算集群技術(shù)與應(yīng)用教學(xué)設(shè)計(jì)課程名稱(chēng):云計(jì)算集群技術(shù)與應(yīng)用__授課年級(jí):_______________________授課學(xué)期:_______________________教師姓名:_______________________年月日課程名稱(chēng)第3章數(shù)據(jù)庫(kù)集群計(jì)劃學(xué)時(shí)4學(xué)時(shí)內(nèi)容分析本章主要介紹數(shù)據(jù)庫(kù)集群的相關(guān)知識(shí),包含數(shù)據(jù)庫(kù)簡(jiǎn)介、數(shù)據(jù)庫(kù)集群簡(jiǎn)介、數(shù)據(jù)庫(kù)集群架構(gòu)、數(shù)據(jù)庫(kù)主從復(fù)制實(shí)戰(zhàn)、數(shù)據(jù)庫(kù)讀寫(xiě)分離實(shí)戰(zhàn)。教學(xué)目標(biāo)與教學(xué)要求【知識(shí)目標(biāo)】理解數(shù)據(jù)庫(kù)簡(jiǎn)介。理解數(shù)據(jù)庫(kù)集群簡(jiǎn)介。理解數(shù)據(jù)庫(kù)集群架構(gòu)?!炯寄苣繕?biāo)】掌握部署數(shù)據(jù)庫(kù)主從復(fù)制。掌握部署數(shù)據(jù)庫(kù)讀寫(xiě)分離?!舅颊四繕?biāo)】引導(dǎo)學(xué)生認(rèn)識(shí)學(xué)習(xí)的過(guò)程也是由簡(jiǎn)入難的逐步積累過(guò)程,并且學(xué)習(xí)的過(guò)程也需要秉承嚴(yán)謹(jǐn)、踏實(shí)、精益求精的大國(guó)工匠精神。引導(dǎo)學(xué)生樹(shù)立科學(xué)嚴(yán)謹(jǐn)?shù)募軜?gòu)精神,數(shù)據(jù)安全意識(shí)。培養(yǎng)學(xué)生項(xiàng)目開(kāi)發(fā)的全局觀和系統(tǒng)思維。教學(xué)重點(diǎn)數(shù)據(jù)庫(kù)集群架構(gòu)、數(shù)據(jù)庫(kù)主從復(fù)制實(shí)戰(zhàn)、數(shù)據(jù)庫(kù)讀寫(xiě)分離實(shí)戰(zhàn)教學(xué)難點(diǎn)數(shù)據(jù)庫(kù)集群架構(gòu)、數(shù)據(jù)庫(kù)主從復(fù)制實(shí)戰(zhàn)、數(shù)據(jù)庫(kù)讀寫(xiě)分離實(shí)戰(zhàn)教學(xué)方式課堂講解配合ppt演示2學(xué)時(shí),上機(jī)演練2學(xué)時(shí)教學(xué)過(guò)程第一學(xué)時(shí)(數(shù)據(jù)庫(kù)簡(jiǎn)介、數(shù)據(jù)庫(kù)集群簡(jiǎn)介、數(shù)據(jù)庫(kù)集群架構(gòu))一、提出需求,導(dǎo)入學(xué)習(xí)任務(wù)(1)思考數(shù)據(jù)庫(kù)集群的學(xué)習(xí)應(yīng)該從何入手。通過(guò)MySQL宕機(jī)事故,引出數(shù)據(jù)庫(kù)集群的重要性。事件一:2012年9月10-11日,GitHub服務(wù)中斷,持續(xù)1.46小時(shí)。宕機(jī)的原因?yàn)镚itHub將一對(duì)古老的、基于DRBD的MySQL服務(wù)器替換成一個(gè)擁有3個(gè)節(jié)點(diǎn)的集群。在合并到新系統(tǒng)時(shí),“活動(dòng)的”數(shù)據(jù)庫(kù)自動(dòng)出現(xiàn)了多個(gè)故障轉(zhuǎn)移(failover),同時(shí)又因?yàn)榧汗芾碥浖腻e(cuò)誤操作導(dǎo)致性能下降,最終造成網(wǎng)站宕機(jī)。事件二:2012年6月29日,AmazonRDS宕機(jī)事件,持續(xù)時(shí)間3小時(shí)。一個(gè)被稱(chēng)為derecho的強(qiáng)雷暴天氣系統(tǒng)通過(guò)弗吉尼亞州北部,使得亞馬遜在該地區(qū)的設(shè)施失去了動(dòng)力,發(fā)電機(jī)不能正常運(yùn)行,消耗應(yīng)急電源的不間斷電源(電源)系統(tǒng),從而導(dǎo)致運(yùn)行在AmazonRDS上的大概上千個(gè)MySQL數(shù)據(jù)庫(kù)宕機(jī)。(2)明確學(xué)習(xí)方向。理解相關(guān)數(shù)據(jù)庫(kù)。理解數(shù)據(jù)庫(kù)集群。理解數(shù)據(jù)庫(kù)集群架構(gòu)。二、知識(shí)講解(一)數(shù)據(jù)庫(kù)簡(jiǎn)介1.概念數(shù)據(jù)庫(kù)(Database)是按照一定的數(shù)據(jù)結(jié)構(gòu)(數(shù)據(jù)結(jié)構(gòu)是指數(shù)據(jù)的組織形式或數(shù)據(jù)之間的聯(lián)系)來(lái)組織、存儲(chǔ)及管理數(shù)據(jù)的倉(cāng)庫(kù),可視為電子化的文件柜,用戶(hù)可以對(duì)文件中的數(shù)據(jù)進(jìn)行新增、查詢(xún)、更新、刪除等操作。2.數(shù)據(jù)庫(kù)模型早期比較受歡迎的數(shù)據(jù)庫(kù)模型有三種,分別為層次式數(shù)據(jù)庫(kù)、網(wǎng)絡(luò)式數(shù)據(jù)庫(kù)、關(guān)系型數(shù)據(jù)庫(kù)。而現(xiàn)代的互聯(lián)網(wǎng)世界中,最常用的數(shù)據(jù)庫(kù)模型只有兩種,關(guān)系型數(shù)據(jù)庫(kù)和非關(guān)系型數(shù)據(jù)庫(kù)。關(guān)系型數(shù)據(jù)庫(kù)關(guān)系型數(shù)據(jù)庫(kù)模型是把復(fù)雜的數(shù)據(jù)結(jié)構(gòu)歸結(jié)為簡(jiǎn)單的二元關(guān)系(即二維表格形式)。在關(guān)系型數(shù)據(jù)庫(kù)中,對(duì)數(shù)據(jù)的操作幾乎全部建立在一個(gè)或多個(gè)關(guān)系表格上,通過(guò)這些關(guān)聯(lián)的表格分類(lèi)、合并、連接或選取等運(yùn)算來(lái)實(shí)現(xiàn)數(shù)據(jù)的管理。非關(guān)系型數(shù)據(jù)庫(kù)非關(guān)系型數(shù)據(jù)庫(kù)也被稱(chēng)為NoSQL數(shù)據(jù)庫(kù),NoSQL的本意是“NotOnlySQL”,指的是非關(guān)系型數(shù)據(jù)庫(kù),而不是“NOSQL”的意思,因此,NoSQL的產(chǎn)生并不是要徹底否定關(guān)系型數(shù)據(jù)庫(kù),而是作為傳統(tǒng)數(shù)據(jù)庫(kù)的一個(gè)有效補(bǔ)充。NoSQL數(shù)據(jù)庫(kù)在特定的場(chǎng)景下可以發(fā)揮難以想象的高效率和高性能。(二)數(shù)據(jù)庫(kù)集群簡(jiǎn)介1.概念數(shù)據(jù)庫(kù)集群,顧名思義,配置若干(兩臺(tái)及以上)臺(tái)數(shù)據(jù)庫(kù)服務(wù)器組成一個(gè)系統(tǒng),作為一個(gè)整體為客戶(hù)端提供透明的數(shù)據(jù)服務(wù)。大量讀寫(xiě)請(qǐng)求來(lái)臨時(shí),數(shù)據(jù)庫(kù)集群可以將請(qǐng)求分發(fā)給不同的集群節(jié)點(diǎn),這樣的處理使得數(shù)據(jù)的讀寫(xiě)速度更快,也更好地解決了高并發(fā)情況下單節(jié)點(diǎn)數(shù)據(jù)庫(kù)的性能問(wèn)題。2.分布式數(shù)據(jù)庫(kù)分布式數(shù)據(jù)庫(kù)是指利用網(wǎng)絡(luò)將分散的數(shù)據(jù)存儲(chǔ)節(jié)點(diǎn)連接起來(lái)組成一個(gè)整體提供數(shù)據(jù)庫(kù)服務(wù)。用戶(hù)通過(guò)分布式數(shù)據(jù)庫(kù)系統(tǒng)的就近訪(fǎng)問(wèn)原則,可以訪(fǎng)問(wèn)就近的數(shù)據(jù)庫(kù)節(jié)點(diǎn),數(shù)據(jù)庫(kù)各節(jié)點(diǎn)之間能夠同步數(shù)據(jù)傳輸,實(shí)現(xiàn)了數(shù)據(jù)的一致性。3.數(shù)據(jù)庫(kù)集群與分布式數(shù)據(jù)庫(kù)系統(tǒng)的對(duì)比圖4.數(shù)據(jù)庫(kù)集群與分布式數(shù)據(jù)庫(kù)系統(tǒng)的區(qū)別數(shù)據(jù)庫(kù)可以具有多個(gè)相似或相同的數(shù)據(jù)集,分布式數(shù)據(jù)庫(kù)系統(tǒng)一般具有完全不同的數(shù)據(jù)集。數(shù)據(jù)庫(kù)集群的各節(jié)點(diǎn)使用相同的操作系統(tǒng)、數(shù)據(jù)庫(kù)版本,以及相同版本的補(bǔ)丁包,而分布式數(shù)據(jù)庫(kù)系統(tǒng)中各節(jié)點(diǎn)可以使用不同的操作系統(tǒng)和不同版本的數(shù)據(jù)庫(kù)系統(tǒng)。數(shù)據(jù)庫(kù)集群一般情況下是建立在高速局域網(wǎng)內(nèi),而分布式數(shù)據(jù)庫(kù)系統(tǒng)還可以建立在異地遠(yuǎn)程網(wǎng)絡(luò)。(三)數(shù)據(jù)庫(kù)集群架構(gòu)主從復(fù)制主從復(fù)制架構(gòu),顧名思義,分為主數(shù)據(jù)庫(kù)和從數(shù)據(jù)庫(kù)。從數(shù)據(jù)庫(kù)要求與主數(shù)據(jù)庫(kù)有完全相同數(shù)據(jù)庫(kù)環(huán)境,當(dāng)主數(shù)據(jù)庫(kù)實(shí)時(shí)更新數(shù)據(jù)信息時(shí),主數(shù)據(jù)庫(kù)會(huì)將更新信息寫(xiě)入一個(gè)二進(jìn)制文件binlog中,然后發(fā)送到從數(shù)據(jù)庫(kù)中。從服務(wù)器成功連接主服務(wù)器后,讀取主服務(wù)器的二進(jìn)制文件,并執(zhí)行相應(yīng)的操作直至最后一次更新的位置,然后等待主服務(wù)器通知新的更新。數(shù)據(jù)的完整性依賴(lài)于主庫(kù)保存的binlog,比如主庫(kù)宕機(jī)了,還可以通過(guò)binlog把丟失的數(shù)據(jù)同步到從庫(kù)中,以加強(qiáng)數(shù)據(jù)的安全性。一主多從復(fù)制的邏輯圖。多級(jí)復(fù)制一主多從的復(fù)制架構(gòu)可以解決大部分請(qǐng)求壓力較大的場(chǎng)景需求,隨著業(yè)務(wù)量的增大,主庫(kù)發(fā)送binlog日志到從庫(kù)的I/O訪(fǎng)問(wèn)頻率過(guò)高,網(wǎng)絡(luò)壓力也會(huì)隨著增大,這時(shí)多級(jí)復(fù)制架構(gòu)可以解決主庫(kù)額外的I/O線(xiàn)程壓力和網(wǎng)絡(luò)壓力。MySQL的多級(jí)復(fù)制邏輯圖。雙主復(fù)制雙主復(fù)制(DualMaster)又稱(chēng)為主主復(fù)制,即兩個(gè)主數(shù)據(jù)庫(kù),且兩個(gè)主庫(kù)互為主從。主主復(fù)制架構(gòu)常用于數(shù)據(jù)庫(kù)管理員做維護(hù)時(shí)需要主從切換的場(chǎng)景,從而避免了重復(fù)搭建從庫(kù)的麻煩。主主復(fù)制邏輯圖。多源復(fù)制MySQL5.7版本開(kāi)始支持多源(Multi-Source)復(fù)制,實(shí)現(xiàn)了多主一從復(fù)制,將多個(gè)數(shù)據(jù)庫(kù)(Master)的數(shù)據(jù)集中發(fā)送到1臺(tái)從庫(kù)(Slave)上。多源復(fù)制結(jié)構(gòu)要求至少包含兩個(gè)主庫(kù)和一個(gè)從庫(kù),常被用于復(fù)雜的業(yè)務(wù)需求,不但可以支撐OLTP(聯(lián)機(jī)事務(wù)處理),又能夠滿(mǎn)足OLAP(聯(lián)機(jī)分析處理)。多源復(fù)制的邏輯圖。三、知識(shí)鞏固(1)回顧上課前的學(xué)習(xí)目標(biāo),對(duì)本節(jié)課知識(shí)點(diǎn)進(jìn)行總結(jié)。(2)使用第3章課后作業(yè)。第二學(xué)時(shí)(數(shù)據(jù)庫(kù)主從復(fù)制實(shí)戰(zhàn)、數(shù)據(jù)庫(kù)讀寫(xiě)分離實(shí)戰(zhàn))一、回顧上節(jié)課內(nèi)容(1)對(duì)上節(jié)課布置的作業(yè)以及學(xué)生提出的問(wèn)題進(jìn)行答疑解惑。(2)回顧上節(jié)課內(nèi)容,引出本節(jié)課主題。(3)明確學(xué)習(xí)方向。掌握部署數(shù)據(jù)庫(kù)主從復(fù)制。掌握部署數(shù)據(jù)庫(kù)讀寫(xiě)分離。二、知識(shí)講解(一)數(shù)據(jù)庫(kù)主從復(fù)制實(shí)戰(zhàn)1.MySQL主從復(fù)制原理MySQL的主從復(fù)制是一個(gè)異步的復(fù)制過(guò)程,數(shù)據(jù)將從一個(gè)MySQL數(shù)據(jù)庫(kù)(Master)復(fù)制到另外一個(gè)MySQL數(shù)據(jù)庫(kù)(Slave),是由三個(gè)線(xiàn)程參與完成了在Master與Slave之間數(shù)據(jù)復(fù)制的過(guò)程。其中有兩個(gè)線(xiàn)程(SQL線(xiàn)程和I/O線(xiàn)程)在Slave端,另外一個(gè)線(xiàn)程(I/O線(xiàn)程)在Master端。要實(shí)現(xiàn)MySQL的主從復(fù)制,首先必須打開(kāi)Master端的binlog記錄功能,否則就無(wú)法實(shí)現(xiàn)。因?yàn)檎麄€(gè)復(fù)制過(guò)程實(shí)際上就是Slave端從Master端獲取binlog日志,然后再在Slave上以相同的順序執(zhí)行獲取的binlog日志中所記錄的各種SQL操作。要打開(kāi)MySQL的binlog記錄功能,可以通過(guò)在MySQL的配置文件f中的mysqld模塊增加log_bin參數(shù)來(lái)實(shí)現(xiàn)。MySQL主從復(fù)制的工作過(guò)程。2.實(shí)驗(yàn)環(huán)境準(zhǔn)備2臺(tái)VM虛擬機(jī)(或者物理服務(wù)器),一臺(tái)做主數(shù)據(jù)庫(kù)(master1),一臺(tái)從數(shù)據(jù)庫(kù)(slave1),具體如表。配置項(xiàng)主服務(wù)器從服務(wù)器HostNamemaster1slave1IP4445ServerID144145版本號(hào)MySQL5.7MySQL5.73.部署MySQL(1)配置MySQL鏡像源(2)下載并安裝MySQL查看Yum倉(cāng)庫(kù)中提供的MySQL版本。市場(chǎng)中現(xiàn)在使用的是較穩(wěn)定的5.7版本,這里借助Yum管理工具包關(guān)閉MySQL8.0版本,開(kāi)啟5.7版本進(jìn)行實(shí)驗(yàn)。首先下載Yum管理工具包。[root@qfedu~]#yum-yinstallyum-utils使用yum-config-manager命令關(guān)閉MySQL8.0版本,并開(kāi)啟MySQL5.7版本。[root@qfedu~]#yum-config-manager--disablemysql80-community[root@qfedu~]#yum-config-manager--enablemysql57-community設(shè)置完成后再次確認(rèn)目前倉(cāng)庫(kù)中提供的MySQL版本。[root@qfedu~]#yumrepolistenabled|grepmysqlmysql-connectors-community/x86_64MySQLConnectorsCommunity221mysql-tools-community/x86_64MySQLToolsCommunity135mysql57-community/x86_64MySQL5.7CommunityServer使用Yum命令下載并安裝MySQL,具體如下所示。[root@qfedu~]#yum-yinstallmysql-community-server(3)初始化MySQL安裝完成后,啟動(dòng)MySQL服務(wù)并設(shè)置開(kāi)機(jī)自啟。[root@qfedu~]#systemctlstartmysqld[root@qfedu~]#systemctlenablemysqld查看系統(tǒng)為root用戶(hù)隨機(jī)生成的臨時(shí)密碼。[root@qfedu~]#cat/var/log/mysqld.log|grep"temporarypassword"2020-01-03T07:22:33.997442Z1[Note]Atemporarypasswordisgeneratedforroot@localhost:g8R4#F*4l,WX臨時(shí)密碼為“g8R4#F*4l,WX”。使用root用戶(hù)及臨時(shí)密碼,進(jìn)入數(shù)據(jù)庫(kù)。[root@qfedu~]#mysql-uroot-p'g8R4#F*4l,WX'……mysql>看見(jiàn)mysql>提示符,說(shuō)明數(shù)據(jù)庫(kù)登錄成功。更改數(shù)據(jù)庫(kù)的密碼為“QianFeng@123”。mysql>ALTERUSER'root'@'localhost'IDENTIFIEDBY'qianfeng@123';ERROR1819(HY000):Yourpassworddoesnotsatisfythecurrentpolicyrequirements由上述結(jié)果可知,返回了一個(gè)錯(cuò)誤提示,設(shè)置的密碼不符合密碼安全策略。針對(duì)以上問(wèn)題,需要在配置文件中設(shè)置密碼強(qiáng)度。[root@qfedu~]#vim/etc/f#在[mysqld]下添加如下內(nèi)容[mysqld]validate_password=off然后重啟數(shù)據(jù)庫(kù),重新登錄數(shù)據(jù)庫(kù),修改密碼。[root@qfedu~]#systemctlrestartmysqld[root@qfedu~]#mysql-uroot-p'g8R4#F*4l,WX'······此處省略部分代碼······mysql>alteruser'root'@'localhost'identifiedby'qianfeng@123';QueryOK,0rowsaffected(0.11sec)使用root用戶(hù)及設(shè)定的新密碼登陸數(shù)據(jù)庫(kù),驗(yàn)證密碼是否更改成功。[root@qfedu~]#mysql-uroot-p'QianFeng@123'······此處省略部分代碼······mysql>由上述結(jié)果可知,密碼更改成功,數(shù)據(jù)庫(kù)初始化完成。4.部署主從復(fù)制集群(1)配置主服務(wù)器在配置主從復(fù)制集群時(shí),需要在主服務(wù)器上開(kāi)啟二進(jìn)制日志并配置唯一的服務(wù)器ID,配置完成后需要重新啟動(dòng)mysqld服務(wù)。編輯主服務(wù)器的配置文件f。[root@master1~]#vi/etc/f[mysqld]#添加如下代碼log-bin=/var/log/mysql/mysql-binserver-id=144創(chuàng)建相關(guān)的日志目錄并賦予權(quán)限。[root@master1~]#mkdir/var/log/mysql[root@master1~]#chownmysql.mysql/var/log/mysql目錄創(chuàng)建完成后,重新啟動(dòng)mysqld服務(wù)。[root@master1~]#systemctlrestartmysqld為了保證在使用帶事務(wù)的InnoDB進(jìn)行復(fù)制設(shè)置時(shí)盡可能提高持久性和一致性,也需要在主服務(wù)器(master1)的f配置文件中加入以下配置項(xiàng)。innodb_flush_log_at_trx_commit=1sync_binlog=1在MySQL中查看skip_networking選項(xiàng)狀態(tài)。mysql>showvariableslike'%skip_networking%';+++|Variable_name|Value|+++|skip_networking|OFF|+++1rowinset(0.00sec)由上述結(jié)果可知,skip_networking選項(xiàng)為關(guān)閉狀態(tài)。(2)創(chuàng)建指定用戶(hù)創(chuàng)建一個(gè)專(zhuān)門(mén)用于復(fù)制數(shù)據(jù)的用戶(hù),每個(gè)從服務(wù)器需要使用MySQL主服務(wù)器上的用戶(hù)名和密碼連接到主服務(wù)器上。例如,在主服務(wù)上創(chuàng)建用戶(hù)repl,并允許該用戶(hù)可以從任何主機(jī)上連接到Master上進(jìn)行復(fù)制操作。mysql>createuser'repl'@'%';QueryOK,0rowsaffected(0.02sec)mysql>grantreplicationslaveon*.*to'repl'@'%'identifiedby'qianfeng@123';QueryOK,0rowsaffected(0.02sec)用戶(hù)和權(quán)限設(shè)置完成后,可以嘗試在從服務(wù)器上使用剛才創(chuàng)建的用戶(hù)進(jìn)行測(cè)試連接。[root@slave1~]#mysql-urepl-p'qianfeng@123'-hmaster1……mysql>由上述結(jié)果可知,用戶(hù)repl可以通過(guò)從服務(wù)器登陸主服務(wù)器。(3)拷貝數(shù)據(jù)在搭建主從復(fù)制集群時(shí),主服務(wù)上可能會(huì)已經(jīng)存在數(shù)據(jù),為了模擬真實(shí)的生產(chǎn)環(huán)境,在主服務(wù)器上插入測(cè)試數(shù)據(jù)。mysql>createdatabasetest;mysql>createtabletest.t1(idint,namevarchar(50));mysql>insertintotest.t1values(1,"lucky"),(2,"Cookie"),(3,"Belle");在啟動(dòng)復(fù)制之前,需要將主服務(wù)器中現(xiàn)有的數(shù)據(jù)與從服務(wù)器保持同步,在進(jìn)行相關(guān)操作時(shí)需要保持客戶(hù)端的正常運(yùn)行,以便鎖定保持不變。將主服務(wù)器中現(xiàn)有的數(shù)據(jù)導(dǎo)出,并將導(dǎo)出的數(shù)據(jù)復(fù)制到每個(gè)從服務(wù)器上。本次實(shí)例將使用mysqldump工具創(chuàng)建要復(fù)制的所有數(shù)據(jù)庫(kù)轉(zhuǎn)儲(chǔ)。[root@master1~]#mysqldump-uroot-p'qianfeng@123'--all-databases--master-data=1>dbdump.db查看備份中數(shù)據(jù)記錄的二進(jìn)制日志的位置,以便在從服務(wù)器配置中使用。[root@master1~]#vimdbdump.db……22CHANGEMASTERTOMASTER_LOG_FILE='mysql-bin.000001',MASTER_LOG_POS=1255;//省略部分內(nèi)容//使用scp或者rsync工具將備份出來(lái)的數(shù)據(jù)傳輸?shù)綇姆?wù)器上。[root@master1~]#scpdbdump.dbroot@slave1:/root/(4)配置從服務(wù)器數(shù)據(jù)拷貝完成后,在從服務(wù)器的f配置文件中添加ServerID。[root@slave1~]#vi/etc/f[mysqld]server-id=145需要注意,配置修改完成后需要重新啟動(dòng)mysqld的服務(wù)。[root@slave1~]#systemctlrestartmysqld接下來(lái),在從服務(wù)器的數(shù)據(jù)庫(kù)中導(dǎo)入備份數(shù)據(jù)。mysql>source/root/dbdump.db從服務(wù)器上連接主服務(wù)器,注意相關(guān)信息的準(zhǔn)確性。mysql>CHANGEMASTERTO->master_host='master1',->master_user='repl',->master_password='qianfeng@123',->master_log_file='mysql-bin.000001',->master_log_pos=1255;在從服務(wù)器開(kāi)始復(fù)制線(xiàn)程。mysql>startslave;在從服務(wù)器執(zhí)行如下操作可以驗(yàn)證線(xiàn)程是否工作正常。mysql>showslavestatus\G……Slave_IO_Running:YesSlave_SQL_Running:Yes……I/O線(xiàn)程和SQL線(xiàn)程的狀態(tài)都為YES,證明主從復(fù)制線(xiàn)程啟動(dòng)成功。5.測(cè)試數(shù)據(jù)同步(詳見(jiàn)第3章PPT)(1)復(fù)制狀態(tài)驗(yàn)證(2)故障排除(3)加入新的從服務(wù)器(二)數(shù)據(jù)庫(kù)讀寫(xiě)分離實(shí)戰(zhàn)1.數(shù)據(jù)庫(kù)代理(1)代理服務(wù)器是網(wǎng)絡(luò)信息的中轉(zhuǎn)站,是信息“交流”的使者,常見(jiàn)的數(shù)據(jù)庫(kù)代理架構(gòu)。(2)代理服務(wù)器提供統(tǒng)一的入口供用戶(hù)訪(fǎng)問(wèn),當(dāng)用戶(hù)訪(fǎng)問(wèn)代理服務(wù)器時(shí),代理服務(wù)器會(huì)將用戶(hù)請(qǐng)求平均的分發(fā)到后端的服務(wù)器集群,并且其本身并不會(huì)做任何的數(shù)據(jù)處理。這樣一來(lái),代理服務(wù)器不僅起到負(fù)載均衡的作用,而且同時(shí)還提供了獨(dú)立的端口和IP。當(dāng)后端的服務(wù)器處理完請(qǐng)求后也會(huì)通過(guò)代理服務(wù)器返回給用戶(hù),基本的網(wǎng)絡(luò)拓?fù)淙鐖D。數(shù)據(jù)庫(kù)代理(DBProxy)又被稱(chēng)為數(shù)據(jù)庫(kù)中間件,當(dāng)面對(duì)大量的應(yīng)用請(qǐng)求時(shí),代理可以通過(guò)對(duì)數(shù)據(jù)進(jìn)行分片以及自身的自動(dòng)路由與聚合機(jī)制實(shí)現(xiàn)對(duì)不同請(qǐng)求的分發(fā),以此來(lái)達(dá)到數(shù)據(jù)庫(kù)的讀寫(xiě)分離功能。2.Mycat讀寫(xiě)分離原理Mycat是一款開(kāi)源的數(shù)據(jù)庫(kù)代理軟件,由阿里巴巴在Cobar的基礎(chǔ)上進(jìn)行改良,不僅支持市場(chǎng)上主流的數(shù)據(jù)庫(kù)(MySQL、Oracle、MongoDB等),而且還支持?jǐn)?shù)據(jù)庫(kù)中的事務(wù)操作。通過(guò)搭建Mycat代理,實(shí)現(xiàn)MySQL雙主雙從集群的讀寫(xiě)分離。讀寫(xiě)分離集群架構(gòu)如圖。3.實(shí)驗(yàn)環(huán)境讀寫(xiě)分離集群中,各服務(wù)器的詳細(xì)參數(shù)如表。主機(jī)名稱(chēng)主機(jī)IP系統(tǒng)Mycat40Centos7Master144Centos7Slave145Centos7Master241Centos7Slave242Centos74.部署流程(詳見(jiàn)第3章PPT)(1)配置Java環(huán)境在Mycat服務(wù)器中使用Wget工具下載相應(yīng)的JDK壓縮包并解壓。[root@mycat~]#lsjdk-8u311-linux-x64.tar.gz[root@mycat~]#tarxfjdk-8u311-linux-x64.tar.gz-C/usr/local/[root@mycat~]#ln-s/usr/localk1.8.0_311//usr/local/java解壓完成后需要在全局配置文件內(nèi)追加設(shè)置Java環(huán)境變量。[root@mycat~]#vim/etc/profileJAVA_HOME=/usr/local/javaPATH=$JAVA_HOME/bin:$PATHexportJAVA_HOMEPATH刷新全局變量,使環(huán)境變量生效。[root@mycat~]#source/etc/profile使用相關(guān)命令驗(yàn)證Java環(huán)境是否安裝成功。[root@mycat~]#env|grepJAVAJAVA_HOME=/usr/local/java[root@mycat~]#java-versionjavaversion"1.8.0_311"Java(TM)SERuntimeEnvironment(build1.8.0_311-b11)JavaHotSpot(TM)64-BitServerVM(build25.311-b11,mixedmode)(2)配置MycatJava環(huán)境搭建完成后,即可部署Mycat服務(wù)。首先,為了讓?xiě)?yīng)用之間互不影響,可以為Mycat創(chuàng)建一個(gè)專(zhuān)屬的用戶(hù)。#查看是否已經(jīng)存在Mycat用戶(hù)[root@mycat~]#cat/etc/group|grepmycat[root@mycat~]#cat/etc/passwd|grepmycat#創(chuàng)建Mycat用戶(hù)[root@mycat~]#groupaddmycat[root@mycat~]#useradd-gmycatmycat在Mycat服務(wù)器中使用wget工具進(jìn)行下載,下載完成后將壓縮包解壓至指定路徑即可。[root@mycat~]#wget//20190828135747/Mycat-server--release-20190828135747-linux.tar.gz[root@mycat~]#tarxfMycat-server--release-20190828135747-linux.tar.gz-C/usr/local/[root@mycat~]#ls/usr/local/mycat/bincatletconfliblogsversion.txt由上述結(jié)果可知,解壓在/usr/local/目錄下有一個(gè)mycat文件夾,將該文件夾的所有者設(shè)置為mycat用戶(hù)。[root@mycat~]#chown-Rmycat:mycat/usr/local/mycatetc文件下的profile文件是設(shè)置系統(tǒng)級(jí)別的環(huán)境變量和啟動(dòng)程序的,其中的配置會(huì)對(duì)所有用戶(hù)生效。此時(shí)只需修改單個(gè)用戶(hù)的環(huán)境變量,編輯~/.bashrc文件。[root@mycat~]#vim~/.bashrc#添加如下代碼exportMYCAT_HOME=/usr/local/mycatexportPATH=$PATH:$MYCAT_HOME/bin刷新全局變量,使環(huán)境變量生效。[root@mycat~]#source/etc/profile修改server.xml配置文件。修改schema.xml文件。(3)配置MySQL集群Mycat代理配置完成后,需要在后端的MySQL集群上設(shè)置mycatproxy的訪(fǎng)問(wèn)權(quán)限。例如,在Master1服務(wù)器上設(shè)置用戶(hù)權(quán)限。mysql>grantallon*.*to'mycatproxy'@'40'identifiedby'QianFeng@123';需要注意,40為Mycat服務(wù)器的IP地址。(4)啟動(dòng)Mycat在MySQL服務(wù)器將權(quán)限開(kāi)啟完成后,在Mycat服務(wù)器上啟動(dòng)代理服務(wù)。[root@mycat~]#/usr/local/mycat/bin/mycatstartStartingMycat-server...當(dāng)執(zhí)行結(jié)果出現(xiàn)“StartingMycat-server”時(shí),則表示代理服務(wù)正在啟動(dòng)。另外,也可以查看通過(guò)查看相應(yīng)的端口來(lái)檢查服務(wù)器是否正常運(yùn)行。(5)配置mycat后端數(shù)據(jù)庫(kù)當(dāng)Mycat代理服務(wù)器啟動(dòng)起來(lái)后并不能直接使用,因?yàn)镸ycat本身并不提供數(shù)據(jù)存儲(chǔ)功能,所以還需要將Mycat中虛擬的數(shù)據(jù)庫(kù)框架與后端真實(shí)的數(shù)據(jù)庫(kù)進(jìn)行綁定。為了方便讀者理解,這里將在Mycat主機(jī)上安裝MySQL服務(wù),具體如下所示。[root@mycat~]#wget /get/mysql80-community-release-el7-4.noarch.rpm[root@mycat~]#yum-ylocalinstallmysql80-community-release-el7-4.noarch.rpm[root@mycat~]#yum-yinstallyum-utils[root@mycat~]#yum-config-manager--disablemysql80-community[root@mycat~]#yum-config-manager--enablemysql57-community[root@mycat~]#yumrepolistenabled|grepmysqlmysql-connectors-community/x86_64MySQLConnectorsCommunity221mysql-tools-community/x86_64MySQLToolsCommunity135mysql57-community/x86_64MySQL5.7CommunityServer544[root@mycat~]#yum-yinstallmysql-community-server[root@mycat~]#systemctlstartmysqld[root@mycat~]#systemctlenablemysqld[root@mycat~]#cat/var/log/mysqld.log|grep"temporarypassword"2022-01-21T08:54:26.713978Z1[Note]Atemporarypasswordisgeneratedforroot@localhost:&.XrF!?y,50F[root@mycat~]#vim/etc/f#添加以下內(nèi)容validate_password=off[root@mycat~]#mysql-uroot-p'&.XrF!?y,50F'……mysql>ALTERUSER'root'@'localhost'IDENTIFIEDBY'qianfeng@123';QueryOK,0rowsaffected(0.00sec)mysql>\q[root@mycat~]#mysql-h-uroot-pqianfeng@123-P9066……mysql>showdatabases;++|DATABASE|++|T
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 語(yǔ)言認(rèn)知托班課程設(shè)計(jì)
- 閱讀與寫(xiě)作課程設(shè)計(jì)
- 陷波器課程設(shè)計(jì)模擬電子
- 車(chē)道荷載計(jì)算課程設(shè)計(jì)
- 走向小學(xué)游戲課程設(shè)計(jì)
- 金筆作文課程設(shè)計(jì)
- 藍(lán)牙音箱設(shè)計(jì)課程設(shè)計(jì)
- 車(chē)輛保安課程設(shè)計(jì)案例
- 申論規(guī)范用詞課程設(shè)計(jì)
- 踏板操完整課程設(shè)計(jì)
- 二級(jí)綜合醫(yī)院評(píng)審標(biāo)準(zhǔn)實(shí)施細(xì)則
- 新大《新疆地質(zhì)概論》教案第6章 礦產(chǎn)資源
- 七年級(jí)下冊(cè)《Reading 1 A brave young man》優(yōu)質(zhì)課教案牛津譯林版-七年級(jí)英語(yǔ)教案
- EGD殺生劑劑化學(xué)品安全技術(shù)說(shuō)明(MSDS)zj
- GB/T 12229-2005通用閥門(mén)碳素鋼鑄件技術(shù)條件
- 超分子化學(xué)-第三章 陰離子的絡(luò)合主體
- 控制變量法教學(xué)課件
- 血壓計(jì)保養(yǎng)記錄表
- 食品的售后服務(wù)承諾書(shū)范本范文(通用3篇)
- 初中中考英語(yǔ)總復(fù)習(xí)《代詞動(dòng)詞連詞數(shù)詞》思維導(dǎo)圖
- 植物和五行關(guān)系解說(shuō)
評(píng)論
0/150
提交評(píng)論