内射老阿姨1区2区3区4区_久久精品人人做人人爽电影蜜月_久久国产精品亚洲77777_99精品又大又爽又粗少妇毛片

MySQL5.7中多源復(fù)制及Nginx中間件是怎么樣的-創(chuàng)新互聯(lián)

本篇文章給大家分享的是有關(guān)MySQL5.7中多源復(fù)制及Nginx中間件是怎么樣的,小編覺(jué)得挺實(shí)用的,因此分享給大家學(xué)習(xí),希望大家閱讀完這篇文章后可以有所收獲,話(huà)不多說(shuō),跟著小編一起來(lái)看看吧。

成都創(chuàng)新互聯(lián)公司長(zhǎng)期為近千家客戶(hù)提供的網(wǎng)站建設(shè)服務(wù),團(tuán)隊(duì)從業(yè)經(jīng)驗(yàn)10年,關(guān)注不同地域、不同群體,并針對(duì)不同對(duì)象提供差異化的產(chǎn)品和服務(wù);打造開(kāi)放共贏平臺(tái),與合作伙伴共同營(yíng)造健康的互聯(lián)網(wǎng)生態(tài)環(huán)境。為鞏留企業(yè)提供專(zhuān)業(yè)的網(wǎng)站設(shè)計(jì)制作、成都網(wǎng)站制作,鞏留網(wǎng)站改版等技術(shù)服務(wù)。擁有10多年豐富建站經(jīng)驗(yàn)和眾多成功案例,為您定制開(kāi)發(fā)。

之前有寫(xiě)了一點(diǎn)驗(yàn)證多源復(fù)制的東西,下半篇寫(xiě)點(diǎn)Nginx的東西;
背景:趕
環(huán)境:MySQL-5.7.9 x 4,Nging-1.9.7 x 1,五臺(tái)虛擬機(jī)
總體思路:
四個(gè)MySQL實(shí)例組成雙主雙從的多源復(fù)制結(jié)構(gòu),Nginx放在前端,對(duì)應(yīng)用層屏蔽DB層細(xì)節(jié),同時(shí)由Nginx來(lái)完成負(fù)載均衡/讀寫(xiě)分離和“偽HA”
MySQL5.7中多源復(fù)制及Nginx中間件是怎么樣的

使用的Nginx配置
MySQL5.7中多源復(fù)制及Nginx中間件是怎么樣的

簡(jiǎn)單試一下功能,連接的時(shí)候指定host,使用TCP的方式去連接61上面的Nginx,可以看到成功的登錄了MySQL,
MySQL5.7中多源復(fù)制及Nginx中間件是怎么樣的
在兩臺(tái)主庫(kù)上面找一找,發(fā)現(xiàn)這個(gè)鏈接發(fā)送到了67上面
MySQL5.7中多源復(fù)制及Nginx中間件是怎么樣的
既然連進(jìn)來(lái)了,通過(guò)一個(gè)純粹做請(qǐng)求轉(zhuǎn)發(fā)的Nginx之后, 普通的操作應(yīng)該是沒(méi)什么問(wèn)題,試驗(yàn)略過(guò);
連接write的upstream和連接read的upstream沒(méi)什么本質(zhì)上的區(qū)別,試驗(yàn)略過(guò);
通過(guò)Nginx做中間件來(lái)實(shí)現(xiàn)讀寫(xiě)分離的話(huà),只需要在URL中連接不同的端口就可以了,試驗(yàn)略過(guò);
多個(gè)連接同時(shí)連到這個(gè)Nginx的寫(xiě)庫(kù)(主庫(kù)),可以看到連接被分到了不同的服務(wù)器上,
MySQL5.7中多源復(fù)制及Nginx中間件是怎么樣的MySQL5.7中多源復(fù)制及Nginx中間件是怎么樣的

提問(wèn):如果有session連接在某一臺(tái)主庫(kù)上,然后那臺(tái)主庫(kù)出問(wèn)題掛掉了,客戶(hù)端的狀態(tài)?
解惑:kill主庫(kù)的mysql進(jìn)程,模擬down機(jī);
MySQL5.7中多源復(fù)制及Nginx中間件是怎么樣的
有兩個(gè)客戶(hù)端出現(xiàn)了重連的提示,另外兩個(gè)一切正常;
MySQL5.7中多源復(fù)制及Nginx中間件是怎么樣的MySQL5.7中多源復(fù)制及Nginx中間件是怎么樣的MySQL5.7中多源復(fù)制及Nginx中間件是怎么樣的MySQL5.7中多源復(fù)制及Nginx中間件是怎么樣的

存活的主庫(kù)狀態(tài),可以看到請(qǐng)求都轉(zhuǎn)到了存活的主庫(kù)上;
MySQL5.7中多源復(fù)制及Nginx中間件是怎么樣的
結(jié)論:對(duì)客戶(hù)端來(lái)說(shuō),雖然保持連接的那個(gè)主庫(kù)掛掉了,但是在前端來(lái)看,就像是連接超時(shí)被斷開(kāi)了一樣,并不會(huì)感受到端口為13579的主庫(kù)已經(jīng)掛掉了;
讀庫(kù)同理,驗(yàn)證略過(guò);

額外發(fā)現(xiàn)的斷開(kāi)連接現(xiàn)象:在Nginx設(shè)置的timeout也會(huì)有一定的影響,接上圖的狀態(tài),一直不去操作這幾個(gè)客戶(hù)端,在超時(shí)時(shí)間之后,會(huì)在MySQL端輸出如下錯(cuò)誤日志;
MySQL5.7中多源復(fù)制及Nginx中間件是怎么樣的
重新操作一下幾個(gè)客戶(hù)端,會(huì)看到所有的連接其實(shí)都斷開(kāi)了;
MySQL5.7中多源復(fù)制及Nginx中間件是怎么樣的MySQL5.7中多源復(fù)制及Nginx中間件是怎么樣的MySQL5.7中多源復(fù)制及Nginx中間件是怎么樣的MySQL5.7中多源復(fù)制及Nginx中間件是怎么樣的

解惑:連接建立以后,空閑的時(shí)間超過(guò)Nginx(proxy_timeout)和MySQL的設(shè)置中比較短的那個(gè)之后,就會(huì)自行斷開(kāi);
結(jié)論:和Nginx+Tomcat的反向代理一樣,超時(shí)時(shí)間的設(shè)置也要注意一下;

提問(wèn):某一個(gè)庫(kù)(以上面掛掉的那個(gè)主庫(kù)為例)掛掉之后,fail_timeout的時(shí)間之后,這個(gè)主庫(kù)恢復(fù)了,會(huì)不會(huì)自動(dòng)加回列表?
解惑:為了方便測(cè)試,改一下fail_timeout的時(shí)間,然后關(guān)掉主庫(kù)67,重啟Nginx以后,再啟動(dòng)67,等待一段時(shí)間,
MySQL5.7中多源復(fù)制及Nginx中間件是怎么樣的
MySQL5.7中多源復(fù)制及Nginx中間件是怎么樣的
間隔的時(shí)間稍微久了點(diǎn), 不過(guò)重新開(kāi)啟連接以后,可以看到有連接重新進(jìn)來(lái)了,fail_timeout的設(shè)置還是ok的,在超過(guò)這個(gè)時(shí)間段以后,Nginx會(huì)去檢測(cè)后端服務(wù)器的狀況,把啟動(dòng)起來(lái)的服務(wù)器重新加進(jìn)來(lái);
結(jié)論:Nginx作為一個(gè)中間件,可以做到“自動(dòng)移除掛掉的機(jī)器/自動(dòng)加回恢復(fù)的機(jī)器”;
PS:如果是啟動(dòng)了,正在恢復(fù)數(shù)據(jù)的話(huà),最好還是把出問(wèn)題的庫(kù)從upstream移除比較好;

提問(wèn):在upstream的配置中,寫(xiě)的是通過(guò)hash的方式去轉(zhuǎn)發(fā)連接,那么是否可以像Nginx+Tomcat的反向代理一樣,采用權(quán)重等其他的方式來(lái)轉(zhuǎn)發(fā)連接?
解惑:試一下;為了方便看效果,簡(jiǎn)單改一下Nginx的配置
MySQL5.7中多源復(fù)制及Nginx中間件是怎么樣的
連接四個(gè)客戶(hù)端以后,看看兩個(gè)主庫(kù)的連接;
MySQL5.7中多源復(fù)制及Nginx中間件是怎么樣的MySQL5.7中多源復(fù)制及Nginx中間件是怎么樣的
可以看到連接都轉(zhuǎn)發(fā)到了65主庫(kù)上面去了;
結(jié)論:權(quán)重的配置是可以生效的,這樣的話(huà),可以根據(jù)實(shí)際要求,用不同配置的MySQL實(shí)例來(lái)搭建這種類(lèi)似的架構(gòu);

提問(wèn):既然使用Nginx作為中間件,可以做到“自動(dòng)移除掛掉的機(jī)器/自動(dòng)加回恢復(fù)的機(jī)器”,也對(duì)前端屏蔽了后端DB架構(gòu)上的細(xì)節(jié),不會(huì)發(fā)現(xiàn)某個(gè)DB不可用,為什么要描述成“偽HA”?
解惑:個(gè)人觀點(diǎn),確實(shí),通過(guò)Nginx的中間件,去訪(fǎng)問(wèn)后端的MySQL,確實(shí)是具備了HA的樣子;某個(gè)MySQL實(shí)例掛掉了,不會(huì)導(dǎo)致整個(gè)DB系統(tǒng)無(wú)法運(yùn)行;失敗的MySQL實(shí)例恢復(fù)以后能自動(dòng)加入;
但是用Nginx做中間件有兩個(gè)很明顯的短板:Nginx的端口是作為對(duì)外的唯一出口暴露給應(yīng)用層的, Nginx本身的HA需要其他方式去保障(不像VIP,就算admin或者worker掛掉了,也不影響數(shù)據(jù)庫(kù)訪(fǎng)問(wèn));
另一個(gè)更重要的缺點(diǎn),就是兩個(gè)主庫(kù)全部掛了以后,Nginx本身不能新選舉一個(gè)從庫(kù)作為新的master來(lái)重新搭建新的主從架構(gòu);
這兩個(gè)短板,尤其是第二個(gè)短板,如果是很?chē)?yán)格的HA環(huán)境和要求,這第二個(gè)短板是非常致命的,想要彌補(bǔ)這個(gè),自行開(kāi)發(fā)一套/修改開(kāi)源工具也許能做到;

追問(wèn):存在這么明顯/嚴(yán)重的短板,多源復(fù)制+Nginx的中間件,到底好用么?
解惑:個(gè)人觀點(diǎn),還不錯(cuò);
1.Nginx的單出口問(wèn)題,完全可以通過(guò)啟動(dòng)多個(gè)實(shí)例(分開(kāi)的)指向同一套后端數(shù)據(jù)庫(kù)來(lái)提高可用性(keepalived也可以)
2.不能選舉新Master的問(wèn)題,在5.7的多源復(fù)制功能中,可以橫向增加Master的數(shù)量,完全靠更多的實(shí)例來(lái)提高可用性,
這么做,可能會(huì)使N主之間的數(shù)據(jù)一致性受到影響,不過(guò)只需要在讀庫(kù)的upstream里面剔除掉這些主庫(kù)就行了;
3.完全用提高實(shí)例數(shù)的方式去提高可用性,個(gè)別的實(shí)例(不管主或者從)掛掉了,基本上不會(huì)影響到業(yè)務(wù),所表現(xiàn)出來(lái)的,只是“某些事務(wù)異常中斷了”,需要應(yīng)用層重試,
而不是mha那樣,主庫(kù)掛了需要一段時(shí)間來(lái)重建主從結(jié)構(gòu);

以上就是MySQL5.7中多源復(fù)制及Nginx中間件是怎么樣的,小編相信有部分知識(shí)點(diǎn)可能是我們?nèi)粘9ぷ鲿?huì)見(jiàn)到或用到的。希望你能通過(guò)這篇文章學(xué)到更多知識(shí)。更多詳情敬請(qǐng)關(guān)注創(chuàng)新互聯(lián)-成都網(wǎng)站建設(shè)公司行業(yè)資訊頻道。

文章題目:MySQL5.7中多源復(fù)制及Nginx中間件是怎么樣的-創(chuàng)新互聯(lián)
URL標(biāo)題:http://www.rwnh.cn/article38/cshhpp.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供企業(yè)網(wǎng)站制作域名注冊(cè)、面包屑導(dǎo)航、自適應(yīng)網(wǎng)站、品牌網(wǎng)站設(shè)計(jì)、云服務(wù)器

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶(hù)投稿、用戶(hù)轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話(huà):028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)

成都網(wǎng)站建設(shè)公司
青冈县| 苗栗市| 昭平县| 鹤岗市| 运城市| 红河县| 拜泉县| 塔城市| 太白县| 南宁市| 太保市| 景东| 察哈| 江门市| 宁陕县| 武宣县| 高青县| 中牟县| 洞口县| 锦州市| 芒康县| 霍城县| 昌宁县| 四会市| 中山市| 莫力| 肥东县| 五家渠市| 新蔡县| 阿拉善盟| 嘉荫县| 京山县| 中江县| 克山县| 西城区| 襄樊市| 哈密市| 吕梁市| 怀安县| 高唐县| 天台县|