日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 运维知识 > windows >内容正文

windows

大型网站系统架构实践(五)深入探讨web应用高可用方案

發(fā)布時(shí)間:2024/8/24 windows 42 豆豆
生活随笔 收集整理的這篇文章主要介紹了 大型网站系统架构实践(五)深入探讨web应用高可用方案 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

??????? 從上篇文章到這篇文章,中間用了一段時(shí)間準(zhǔn)備,主要是想把東西講透,同時(shí)希望大家給與一些批評(píng)和建議,這樣我才能有所進(jìn)步,也希望喜歡我文章的朋友,給個(gè)贊,這樣我才能更有激情,呵呵。

由于本篇要寫(xiě)的內(nèi)容有點(diǎn)多,我就分為幾篇博客進(jìn)行了詳細(xì)描述。

Haproxy提高web應(yīng)用的高可用

?????? 上一篇文章講到了haproxy+tomcat的方案,文章地址:大型網(wǎng)站系統(tǒng)架構(gòu)的演進(jìn)(四)http層負(fù)載均衡之haproxy實(shí)踐篇(一)

大家可以先溫習(xí)一下,

?????? 文中提到了高可用,該集群方案也可以提高應(yīng)用系統(tǒng)的高可用,如果tomcat應(yīng)用出現(xiàn)故障,或者tomcat應(yīng)用服務(wù)器出現(xiàn)故障,haproxy會(huì)檢測(cè)到(這里指的是定期心跳檢查),并將應(yīng)用從可用列表中刪除,打開(kāi)監(jiān)控頁(yè)面http://192.168.1.227/haproxy-stats

可以看到有2個(gè)web應(yīng)用運(yùn)行,如果將webA停掉,可以看到webA顯示down

這樣客戶端請(qǐng)求就不會(huì)分發(fā)給webA,下面模擬一下webA宕機(jī)的情況

這里對(duì)sessionId增加了一個(gè)后綴做標(biāo)記

webA:jvm3

webB:jvm2

1. webA正常的情況,客戶請(qǐng)求被分發(fā)到webA

此時(shí)產(chǎn)生的sessionId為jvm3

2. 停掉webA,刷新瀏覽器

可以看到請(qǐng)求被轉(zhuǎn)發(fā)到webB

也就是說(shuō)web應(yīng)用出現(xiàn)故障,haproxy會(huì)做切換,因此可以保證web應(yīng)用的高可用。

Haproxy本身的高可用

????? 如果haproxy本身出現(xiàn)故障,那么網(wǎng)站將不可用,所以我們接下來(lái)要做的事情就是解決haproxy單點(diǎn)故障的問(wèn)題。

我們可以運(yùn)用虛擬ip技術(shù),將haproxy部署在2臺(tái)服務(wù)器上,一臺(tái)做為master,正常運(yùn)營(yíng),一臺(tái)為backup,

當(dāng)master出現(xiàn)問(wèn)題的時(shí)候,接管master。

????? 首先有一個(gè)虛擬ip暴露給客戶端,虛擬ip對(duì)應(yīng)的mac地址為master服務(wù)器,

用戶向虛擬ip發(fā)送一個(gè)請(qǐng)求,該請(qǐng)求會(huì)被分發(fā)到master服務(wù)器上,當(dāng)master出現(xiàn)故障時(shí),被backup檢測(cè)到,則backup成為master,

且發(fā)送消息將arp緩存虛擬ip對(duì)應(yīng)的mac地址backup的mac地址,這樣發(fā)送到虛擬ip的報(bào)文會(huì)被轉(zhuǎn)發(fā)到backup 。

架構(gòu)圖:

該方案解決了haproxy單點(diǎn)故障的問(wèn)題,具體用keepalived實(shí)現(xiàn),詳細(xì)請(qǐng)參考文章:

Keepalived 實(shí)現(xiàn)雙機(jī)熱備

Keepalived + haproxy雙機(jī)高可用方案

如果想實(shí)踐的朋友,請(qǐng)按照上面2篇文章安裝和配置haproxy和keepalived

系統(tǒng)分布如下:

ha主機(jī) 192.168.1.227:80

ha備機(jī) 192.168.1.246

keepalived 主機(jī) 192.168.1.227

keepalived備機(jī) 192.168.1.246

web1 http://192.168.1.226:8081/login

web2 http://192.168.1.246:8888/login

虛擬ip 192.168.1.99

安裝好haproxy和keepalived后,啟動(dòng)haproxy和keepalived

Haproxy訪問(wèn)地址:

http://192.168.1.99/haproxy-stats

注意pid為9644,這是master上的haproxy

應(yīng)用訪問(wèn)地址

http://192.168.1.99/login/

注意sessionId的后綴為jvm3

查看虛擬ip1.99對(duì)應(yīng)的mac地址

接下來(lái),我們停掉master上的haproxy服務(wù)

kill -9 9644

查看haproxy http://192.168.1.99/haproxy-stats

發(fā)現(xiàn)haproxy的pid變成backup機(jī)器上的了

刷新web的訪問(wèn)頁(yè)面http://192.168.1.99/login/

發(fā)現(xiàn)sessionId沒(méi)有變化

查看虛擬ip1.99對(duì)應(yīng)的mac地址

mac地址已經(jīng)變?yōu)閎ackup機(jī)器上的了

如果我們直接關(guān)閉主機(jī)服務(wù)器或者關(guān)閉主機(jī)的keepalived,發(fā)現(xiàn)測(cè)試結(jié)果也是一樣的

因此該方案實(shí)現(xiàn)了haproxy的高可用,解決了haproxy的單點(diǎn)故障問(wèn)題。

會(huì)話保持問(wèn)題

那么這里我還要提出一個(gè)疑問(wèn),為什么sessionId也沒(méi)有變化呢?

也就是說(shuō)切換到backup服務(wù)器的haproxy之后,

可以保持用戶的會(huì)話,那么它是怎么實(shí)現(xiàn)的呢?

這里就要回到上篇文章講的負(fù)載均衡時(shí)保持會(huì)話的策略

會(huì)話保持的流程

1.客戶端首次請(qǐng)求,經(jīng)過(guò)haproxy到web服務(wù)端時(shí),web服務(wù)端set-cookie并響應(yīng)到haproxy

2.haproxy在cookie后插入SRV=A,并響應(yīng)客戶端

3.客戶端第二次請(qǐng)求,經(jīng)過(guò)haproxy時(shí),haproxy將srv后綴去掉,然后請(qǐng)求服務(wù)端

這種保持會(huì)話的方法是無(wú)狀態(tài)的,也就說(shuō)主要haproxy配置的負(fù)載均衡策略相同,不管在哪臺(tái)機(jī)器上運(yùn)行

將得到同樣的結(jié)果

?

上篇文章 大型網(wǎng)站系統(tǒng)架構(gòu)的演進(jìn)(四)http層負(fù)載均衡之haproxy實(shí)踐篇(一)

目錄 大型網(wǎng)站系統(tǒng)架構(gòu)的演進(jìn)目錄

下篇 大型網(wǎng)站系統(tǒng)架構(gòu)實(shí)踐(六)深入探討web應(yīng)用集群Session保持

轉(zhuǎn)載于:https://www.cnblogs.com/tangyanbo/p/4431136.html

總結(jié)

以上是生活随笔為你收集整理的大型网站系统架构实践(五)深入探讨web应用高可用方案的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。