網(wǎng)頁(yè)建設(shè)類有哪些軟件seo營(yíng)銷
目錄
- 0.前言
- 1.基本概念
- 1.相關(guān)名詞解釋
- 2.主從復(fù)制的問(wèn)題
- 3.人工恢復(fù)主節(jié)點(diǎn)故障
- 4.哨兵自動(dòng)恢復(fù)主節(jié)點(diǎn)故障
0.前言
- 說(shuō)明:該章節(jié)相關(guān)操作不需要記憶,理解流程和原理即可,用的時(shí)候能自主查到即可
- Redis的主從復(fù)制模式下,?旦主節(jié)點(diǎn)由于故障不能提供服務(wù),需要??進(jìn)?主從切換,同時(shí)?量的客?端需要被通知切換到新的主節(jié)點(diǎn)上,對(duì)于上了?定規(guī)模的應(yīng)?來(lái)說(shuō),這種?案是?法接受的, 于是Redis從2.8開始提供了Redis Sentinel(哨兵)加個(gè)來(lái)解決這個(gè)問(wèn)題
1.基本概念
1.相關(guān)名詞解釋
名詞 | 邏輯結(jié)構(gòu) | 物理結(jié)構(gòu) |
---|---|---|
主節(jié)點(diǎn) | Redis 主服務(wù) | 一個(gè)獨(dú)立的redis-server 進(jìn)程 |
從節(jié)點(diǎn) | Redis 從服務(wù) | 一個(gè)獨(dú)立的redis-server 進(jìn)程 |
Redis 數(shù)據(jù)節(jié)點(diǎn) | 主從節(jié)點(diǎn) | 主節(jié)點(diǎn)和從節(jié)點(diǎn)的進(jìn)程 |
哨兵節(jié)點(diǎn) | 監(jiān)控 Redis 數(shù)據(jù)節(jié)點(diǎn)的節(jié)點(diǎn) | 一個(gè)獨(dú)立的redis-sentinel 進(jìn)程 |
哨兵節(jié)點(diǎn)集合 | 若干哨兵節(jié)點(diǎn)的抽象組合 | 若干redis-sentinel 進(jìn)程 |
Redis 哨兵(Sentinel ) | Redis 提供的?可??案 | 哨兵節(jié)點(diǎn)集合和 Redis 主從節(jié)點(diǎn) |
應(yīng)?? | 泛指?個(gè)多多個(gè)客?端 | ?個(gè)或多個(gè)連接 Redis 的進(jìn)程 |
2.主從復(fù)制的問(wèn)題
- 主從復(fù)制模式可以將主節(jié)點(diǎn)的數(shù)據(jù)改變同步給從節(jié)點(diǎn),這樣從節(jié)點(diǎn)就可以起到兩個(gè)作?:
- 作為主節(jié)點(diǎn)的?個(gè)備份,?旦主節(jié)點(diǎn)出了故障不可達(dá)的情況,從節(jié)點(diǎn)可以作為后備“頂”上 來(lái),并且保證數(shù)據(jù)盡量不丟失(主從復(fù)制表現(xiàn)為最終?致性)
- 從節(jié)點(diǎn)可以分擔(dān)主節(jié)點(diǎn)上的讀壓?,讓主節(jié)點(diǎn)只承擔(dān)寫請(qǐng)求的處理,將所有的讀請(qǐng)求負(fù)載均衡到各個(gè)從節(jié)點(diǎn)上
- 主從復(fù)制模式并不是萬(wàn)能的,它同樣遺留下以下?個(gè)問(wèn)題
- 主節(jié)點(diǎn)發(fā)?故障時(shí),進(jìn)?主備切換的過(guò)程是復(fù)雜的,需要完全的??參與,導(dǎo)致故障恢復(fù)時(shí)間?法保障
- Redis哨兵主要解決的問(wèn)題
- 主節(jié)點(diǎn)可以將讀壓?分散出去,但寫壓?/存儲(chǔ)壓?是?法被分擔(dān)的,還是受到單機(jī)的限制
- Redis集群解決的問(wèn)題
- 主節(jié)點(diǎn)發(fā)?故障時(shí),進(jìn)?主備切換的過(guò)程是復(fù)雜的,需要完全的??參與,導(dǎo)致故障恢復(fù)時(shí)間?法保障
3.人工恢復(fù)主節(jié)點(diǎn)故障
- Redis主從復(fù)制模式下,主節(jié)點(diǎn)故障后需要進(jìn)?的???作是?較繁瑣的
- 運(yùn)維?員通過(guò)監(jiān)控系統(tǒng),發(fā)現(xiàn)Redis主節(jié)點(diǎn)故障宕機(jī)
- 運(yùn)維?員從所有節(jié)點(diǎn)中,選擇?個(gè)(此處選擇了slave1)執(zhí)?
slaveof no one
,使其作為新的主
節(jié)點(diǎn)
- 運(yùn)維?員讓剩余從節(jié)點(diǎn)(此處為slave2)執(zhí)?
slaveof {newMasterIp} {newMasterPort}
從新主節(jié)點(diǎn)開始數(shù)據(jù)同步
- 更新應(yīng)??連接的主節(jié)點(diǎn)信息到
{newMasterIp} {newMasterPort}
- 如果原來(lái)的主節(jié)點(diǎn)恢復(fù),執(zhí)?
slaveof {newMasterIp} {newMasterPort}
讓其成為?個(gè)從節(jié)點(diǎn)
4.哨兵自動(dòng)恢復(fù)主節(jié)點(diǎn)故障
-
當(dāng)主節(jié)點(diǎn)出現(xiàn)故障時(shí),Redis Sentinel能?動(dòng)完成故障發(fā)現(xiàn)和故障轉(zhuǎn)移,并通知應(yīng)??,從?實(shí)現(xiàn)真正的?可?
-
Redis Sentinel是?個(gè)分布式架構(gòu),其中包含若?個(gè)Sentinel節(jié)點(diǎn)和Redis數(shù)據(jù)節(jié)點(diǎn)
- 每個(gè)Sentinel節(jié)點(diǎn)會(huì)對(duì)數(shù)據(jù)節(jié)點(diǎn)和其余Sentinel節(jié)點(diǎn)進(jìn)?監(jiān)控,當(dāng)它發(fā)現(xiàn)節(jié)點(diǎn)不可達(dá)時(shí),會(huì)對(duì)節(jié)點(diǎn)做下線表?
- 如果下線的是主節(jié)點(diǎn),它還會(huì)和其他的Sentinel節(jié)點(diǎn)進(jìn)?“協(xié)商”,當(dāng)?多數(shù)Sentinel節(jié)點(diǎn)對(duì) 主節(jié)點(diǎn)不可達(dá)這個(gè)結(jié)論達(dá)成共識(shí)之后,它們會(huì)在內(nèi)部“選舉”出?個(gè)領(lǐng)導(dǎo)節(jié)點(diǎn)來(lái)完成?動(dòng)故障轉(zhuǎn)移的?作,同時(shí)將這個(gè)變化實(shí)時(shí)通知給Redis應(yīng)??
- 整個(gè)過(guò)程是完全?動(dòng)的,不需要??介?
-
Redis Sentinel相?于主從復(fù)制模式是多了若?(建議保持奇數(shù))Sentinel節(jié)點(diǎn)?于實(shí)現(xiàn)監(jiān)控?cái)?shù)據(jù)節(jié) 點(diǎn),哨兵節(jié)點(diǎn)會(huì)定期監(jiān)控所有節(jié)點(diǎn)(包含數(shù)據(jù)節(jié)點(diǎn)和其他哨兵節(jié)點(diǎn))
- 保持奇數(shù)是為了便于投票
-
針對(duì)主節(jié)點(diǎn)故障的情況故障轉(zhuǎn)移流程?致如下:
- 主節(jié)點(diǎn)故障,從節(jié)點(diǎn)同步連接中斷,主從復(fù)制停?
- 哨兵節(jié)點(diǎn)通過(guò)定期監(jiān)控發(fā)現(xiàn)主節(jié)點(diǎn)出現(xiàn)故障,哨兵節(jié)點(diǎn)與其他哨兵節(jié)點(diǎn)進(jìn)?協(xié)商,達(dá)成多數(shù)認(rèn)同主節(jié)點(diǎn)故障的共識(shí)
- 這步主要是防?該情況:出故障的不是主節(jié)點(diǎn),?是發(fā)現(xiàn)故障的哨兵節(jié)點(diǎn)
- 該情況經(jīng)常發(fā)?于哨兵節(jié)點(diǎn)的?絡(luò)被孤?的場(chǎng)景下
- 哨兵節(jié)點(diǎn)之間使?Raft算法選舉出?個(gè)領(lǐng)導(dǎo)??,由該節(jié)點(diǎn)負(fù)責(zé)后續(xù)的故障轉(zhuǎn)移?作
- 哨兵領(lǐng)導(dǎo)者開始執(zhí)?故障轉(zhuǎn)移:從節(jié)點(diǎn)中選擇?個(gè)作為新主節(jié)點(diǎn);讓其他從節(jié)點(diǎn)同步新主節(jié)點(diǎn);通知應(yīng)?層轉(zhuǎn)移到新主節(jié)點(diǎn)
-
綜上,RedisSentinel具有以下?個(gè)功能:
- 監(jiān)控:Sentinel節(jié)點(diǎn)會(huì)定期檢測(cè)Redis數(shù)據(jù)節(jié)點(diǎn)、其余哨兵節(jié)點(diǎn)是否可達(dá)
- 故障轉(zhuǎn)移:實(shí)現(xiàn)從節(jié)點(diǎn)晉升(promotion)為主節(jié)點(diǎn)并維護(hù)后續(xù)正確的主從關(guān)系
- 通知:Sentinel節(jié)點(diǎn)會(huì)將故障轉(zhuǎn)移的結(jié)果通知給應(yīng)??