<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

          Redis 哨兵架構基礎

          共 1435字,需瀏覽 3分鐘

           ·

          2020-07-31 17:20

          點擊贈書:聊聊「分布式架構」那些事兒


          1. 哨兵的介紹

          sentinel , 中文是哨兵。

          哨兵是redis 集群架構中非常重要的一個組件,主要功能如下:

          (1)集群監(jiān)控:負責監(jiān)控reidis master 和slave 進程是否正常工作;

          (2)消息通知:如果某個redis實例有故障,那么哨兵負責發(fā)送消息作為報警通知給管理員;

          (3)故障轉移:如果master node掛掉了,會自動轉移到slave node上;

          (4)配置中心:如果故障轉移發(fā)生了,通知client 客戶端新的master 地址;

          哨兵本身也是分布式的作為一個哨兵集群去運行,互相協同工作;

          (1)故障轉移時, 判斷一個master node宕機了,需要大部分的哨兵都同意才行,涉及到了分布式選舉的問題;

          (2)即使部分哨兵節(jié)點掛了,哨兵集群還是能正常工作的,因為如果 一個作為高可用機制重要組成部分的故障轉移系統(tǒng)本身是單點的,那就坑爹了;目前采用的是sentinel 2 版本,sentinel2 相對于 sentinel 1 來說,重寫了很多代碼,主要是讓故障轉移的機制和算法變得更加健壯和簡單。

          2. 哨兵的核心知識

          (1)哨兵至少需要3個實例,來保證自己的健壯性;

          (2)哨兵+redis 主從的部署架構,是不會保證數據0丟失的,只能保證redis 集群的高可用性;

          (3)對于哨兵+redis主從這種負責的部署架構,盡量在測試環(huán)境和生產環(huán)境,都進行充足的測試和演練;

          3. 為什么redis 哨兵集群只有2個節(jié)點無法正常工作?

          哨兵集群必須部署2個以上節(jié)點,如果哨兵集群僅僅部署了2個哨兵實例,quorum=1

          M1 ? ? ? R1

          S1 ? ? ? ?S2

          Configuration:quorum = 1 (哨兵節(jié)點只要1個認為宕機就可以進行切換了)

          master 宕機,s1 和 s2 中只要有一個哨兵認為宕機就可以進行切換,同時s1和s2中會選舉出一個哨兵來進行故障轉移,同時這個時候,需要majority,也就是大多數哨兵都是運行的,2個哨兵的majority就是2,2個哨兵都運行這,就可以允許執(zhí)行故障轉移,但是整個M1和S2運行的機器宕機了,那么哨兵只有1個了,此時就沒有majority來允許執(zhí)行故障轉移,雖然另外一臺機器還有一個R1,但是故障轉移不會執(zhí)行;

          4. 經典的3節(jié)點哨兵集群

          M1

          S1

          R2 ? ? ? ?R3

          S2 ? ? ? ?S3

          Configuration:quorum = 2 majoiry

          如果M1所在機器宕機了,那么3個哨兵還剩下2個,S2和S3可以一致認為master 宕機,然后選舉一個來執(zhí)行故障轉移;同時3個哨兵的majoiry ?= 2 , 所以還剩下2個哨兵運行著,就可以進行故障轉移。


          往期推薦

          認真看看, 以后寫 SQL 就爽多了:MyBatis 動態(tài) SQL:

          實戰(zhàn)篇:點贊功能,用 MySQL 還是 Redis 好 ?

          為什么國內流行的 MyBatis ,國外 Java 工程師卻不愿意使用?

          盤點開發(fā)中那些常用的MySQL優(yōu)化

          Spring 中 @Component、@Service 等注解如何被解析?


          掃一掃,關注我

          一起學習,一起進步


          瀏覽 46
          點贊
          評論
          收藏
          分享

          手機掃一掃分享

          分享
          舉報
          評論
          圖片
          表情
          推薦
          點贊
          評論
          收藏
          分享

          手機掃一掃分享

          分享
          舉報
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  日逼| 91在线对白 | 中文字幕黄色电影 | 国产欧美在线视频 | 爱爱天堂 |