高可用集群和負載均衡集群想必大家都多少聽說過沼琉,但是很多人往往把這兩個搞混在一起北苟,不加區(qū)分地使用這兩個概念。雖然說很多負載均衡的設(shè)備有著高可用的特性打瘪,或者高可用的機器使用著負載均衡的方式分發(fā)流量友鼻,事實上,高可用和負載均衡是兩個完全不同的概念闺骚,兩者關(guān)注的地方是不同的彩扔,而且很多在很多場景下兩者的需求是沖突的。
因此僻爽,這里有必要講下什么是高可用和負載均衡虫碉?兩者各自關(guān)注的地方是什么?
- 高可用性:顧名思義胸梆,盡可能采取措施減少系統(tǒng)服務(wù)中斷時間敦捧,進而提高業(yè)務(wù)程序持續(xù)對外提供服務(wù)的能力。
- 負載均衡:將高并發(fā)的請求數(shù)據(jù)分發(fā)到不同的集群結(jié)點碰镜,盡量平衡系統(tǒng)所有資源的壓力绞惦,從而提升整個集群對于請求的處理能力。
以上的說明內(nèi)容非逞蟠耄科學(xué)的定義了高可用和負載均衡济蝉,但是對于很多沒接觸過的人還不是很好的理解,下面舉個例子簡單說明下。
美國的總統(tǒng)和副總統(tǒng)就像高可用集群王滤,只有等到總統(tǒng)掛了副總統(tǒng)才派得上用場贺嫂,這叫高可用;像我朝各個正職和副職(比如正校長和副校長雁乡,正校長可能姓付第喳,副校長也可能姓鄭)的關(guān)系,更像負載均衡的關(guān)系踱稍,各個正副職往往各司其職曲饱,沒有說哪兩個人干的事情是一模一樣的,或者某個人平時不干事就等正職那位伙計掛掉然后順利成章就接手正職的職責(zé)和權(quán)利的珠月。
負載均衡一般不關(guān)注集群中各節(jié)點對于請求的處理能力扩淀,很多時候會根據(jù)節(jié)點處理能力的不同而使用不同的分發(fā)策略,比如輪詢啤挎,最小連接驻谆,最快響應(yīng)等。高可用比較關(guān)注集群中結(jié)點處理請求能力的對等性庆聘,因為一單主節(jié)點出現(xiàn)問題備用節(jié)點需要承受主節(jié)點所有的請求壓力胜臊,一旦處理能力較弱有可能無法正常提供服務(wù),從而失去高可用的作用伙判。
高可用性集群中的節(jié)點一般是一主一備象对,或者一主多備,通過備份提高整個系統(tǒng)可用性宴抚。負載均衡集群一般是多主勒魔,每個節(jié)點都會分擔(dān)部分流量。
為什么很多人會把高可用和負載均混淆起來酱塔,因為大家一般了解的都是某個軟件或者設(shè)備沥邻,往往這些設(shè)備會同時應(yīng)用負載均衡和高可用。
介紹說明結(jié)束羊娃,本例子來源于網(wǎng)絡(luò)唐全,有版權(quán)問題請及時聯(lián)系本作者
根據(jù)以上說明,如果 Nginx 只有單臺的話就會出現(xiàn)單點故障問題蕊玷,那么整個網(wǎng)站就會掛掉邮利,所以要實現(xiàn) Nginx 高可用,一臺掛掉了另一臺頂上去繼續(xù)維持可持續(xù)服務(wù)垃帅,另一臺好了可繼續(xù)服務(wù)延届。
Nginx 高可用分為以下兩種方式:
- Nginx+keepalived 主從模式
這種方案,使用一個vip地址贸诚,Nginx 使用2臺機器方庭,一臺做主厕吉,一臺做備,但同時只有一臺機器工作械念,另一臺備份機器在主機器不出現(xiàn)故障的時候头朱,永遠處于浪費狀態(tài),對于服務(wù)器不多的網(wǎng)站龄减,該方案不經(jīng)濟實惠项钮。 - Nginx+keepalived 雙主
這種方案,使用兩個vip地址希停,Nginx 使用2臺機器烁巫,互為主備,同時有兩臺機器工作宠能,當(dāng)其中一臺機器出現(xiàn)故障亚隙,兩臺機器的請求轉(zhuǎn)移到一臺機器負擔(dān),非常適合于當(dāng)前架構(gòu)環(huán)境棍潘。
注:這里我采用第一種模式恃鞋,因為第二種模式向外提供兩個 VIP 時崖媚,暫時不符合項目要求亦歉。
搭建環(huán)境說明
服務(wù)器 IP | 服務(wù)器及應(yīng)用版本 | 安裝的服務(wù) | VIP |
---|---|---|---|
192.168.12.1 | CentOS 7 | Java、Tomcat畅哑、Web應(yīng)用 | 無 |
192.168.12.2 | CentOS 7 | Java肴楷、Tomcat、Web應(yīng)用 | 無 |
192.168.12.3 | CentOS 7 | Java荠呐、Tomcat赛蔫、Web應(yīng)用 | 無 |
192.168.12.4 | CentOS 7 | Nginx、Keepalived | 192.168.12.10 |
192.168.12.5 | CentOS 7 | Nginx泥张、Keepalived | 192.168.12.10 |
注:如果 VIP 的選擇呵恢,不能暫用其他服務(wù)器的 IP 地址,特別是在公司使用內(nèi)部服務(wù)器時媚创!
Web應(yīng)用搭建
在部署應(yīng)用的三臺服務(wù)器上安裝 Java jdk1.8
安裝 Tomcat 9.0
部署服務(wù)
部署安裝 Nginx
Nginx 負載均衡
安裝 Keepalived 配置Nginx 高可用
- 安裝 Keepalived
- 配置Nginx 高可用