真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

【NoSQL】拋棄VIP,使用consul和sentinel構(gòu)建redis的高可用系統(tǒng)

背景:

1.傳統(tǒng)redis高可用方案只加了sentinel,在主庫(kù)故障后,雖然可以選主,然后切換只讀參數(shù),但是,對(duì)應(yīng)用來(lái)說(shuō)卻需要更改連接的IP或者在hosts中更改解析。算得上是半自動(dòng)。
2.利用consul系統(tǒng)的服務(wù)注冊(cè)與服務(wù)健康檢查功能可以實(shí)現(xiàn)全自動(dòng)的故障切換與地址解析。

公司主營(yíng)業(yè)務(wù):成都網(wǎng)站設(shè)計(jì)、做網(wǎng)站、移動(dòng)網(wǎng)站開(kāi)發(fā)等業(yè)務(wù)。幫助企業(yè)客戶真正實(shí)現(xiàn)互聯(lián)網(wǎng)宣傳,提高企業(yè)的競(jìng)爭(zhēng)能力。創(chuàng)新互聯(lián)建站是一支青春激揚(yáng)、勤奮敬業(yè)、活力青春激揚(yáng)、勤奮敬業(yè)、活力澎湃、和諧高效的團(tuán)隊(duì)。公司秉承以“開(kāi)放、自由、嚴(yán)謹(jǐn)、自律”為核心的企業(yè)文化,感謝他們對(duì)我們的高要求,感謝他們從不同領(lǐng)域給我們帶來(lái)的挑戰(zhàn),讓我們激情的團(tuán)隊(duì)有機(jī)會(huì)用頭腦與智慧不斷的給客戶帶來(lái)驚喜。創(chuàng)新互聯(lián)建站推出海勃灣免費(fèi)做網(wǎng)站回饋大家。

架構(gòu):

【NoSQL】拋棄VIP,使用consul和sentinel構(gòu)建redis的高可用系統(tǒng)

搭建:

1.建立consul集群,在redis節(jié)點(diǎn)上布置consul agent
2.建立sentinel集群
3.注冊(cè)服務(wù)(重點(diǎn))

  • 首先在redis2222實(shí)例上新建redis主從檢測(cè)腳本
    cat >/root/check/redis_role.sh<

    注:腳本使用方式:/root/check/redis_role.sh 2222 master
    第一個(gè)參數(shù)2222代表端口
    第二個(gè)參數(shù)master代表主,也可使用slave
    原理:摘出info命令中replication段的role屬性,然后和第二個(gè)變量相對(duì)比,相同,則輸出0
    (shell腳本正常運(yùn)行的返回值),否則返回2(shell腳本執(zhí)行異常的返回值)

  • 其次:創(chuàng)建consul的redis服務(wù)配置文件
        cat >/etc/consu/redis_2222.json<

    在redis3333實(shí)例所在的主機(jī)上同樣操作。
    解釋?zhuān)涸?222實(shí)例上我們注冊(cè)兩個(gè)服務(wù),一個(gè)為redis-master,一個(gè)為redis-slave。
    在3333實(shí)例上也注冊(cè)了同樣的兩個(gè)服務(wù),在consul系統(tǒng)中,將json配置文件中name屬性相同的
    服務(wù)視為同一個(gè)服務(wù)。因?yàn)閏onsul本身是具備健康檢查的功能,一個(gè)服務(wù)中如果兩個(gè)節(jié)點(diǎn)都OK
    服務(wù)域名解析是將會(huì)輪詢(xún)到兩個(gè)節(jié)點(diǎn)中,但健康檢查失敗后,域名解析時(shí)會(huì)自動(dòng)踢出fail節(jié)點(diǎn)。


    情況1:redis2222為主實(shí)例,redis3333為從實(shí)例
          通過(guò)在腳本對(duì)redis的主從屬性進(jìn)行檢查, "args":["/root/check/redis_role.sh","2222","master"],
    在腳本中,我們?cè)O(shè)置了讀取傳入的兩個(gè)參數(shù)并進(jìn)行使用,在consul配置文件中,對(duì)傳入?yún)?shù)
    需要使用“,”分割,并且無(wú)論數(shù)字或者字符串都需要加上雙引號(hào)。
    2222的實(shí)例中role為master,3333的實(shí)例role為 slave。分別滿足了redis-master和redis-slave
    的健康檢查,consul在解析redis-master.service.consul和redis-slave.service.consul時(shí)分別指向
    了redis2222的主機(jī)和redis3333的地址。
    此時(shí):   ping redis-master.service.consul 》192.168.1.131
                  ping redis-slave.service.consul 》192.168.1.104
                  APP可以通過(guò)redis-master.service.consul:2222對(duì)redis進(jìn)行寫(xiě)入,
                  通過(guò)redis-master.service.consul:3333對(duì)redis進(jìn)行分散讀請(qǐng)求
    consul web頁(yè)面如圖

【NoSQL】拋棄VIP,使用consul和sentinel構(gòu)建redis的高可用系統(tǒng)
【NoSQL】拋棄VIP,使用consul和sentinel構(gòu)建redis的高可用系統(tǒng)


情況2:redis2222節(jié)點(diǎn)故障,sentinel自動(dòng)提升redis3333節(jié)點(diǎn)為主節(jié)點(diǎn),2222重新上線后,被
    sentinel集群配置為指向3333的從節(jié)點(diǎn)。
         此時(shí): ping redis-master.service.consul 》192.168.1.104
               ping redis-slave.service.consul 》192.168.1.131
    APP可以通過(guò)redis-master.service.consul:3333對(duì)redis進(jìn)行寫(xiě)入,
    通過(guò)redis-master.service.consul:2222對(duì)redis進(jìn)行分散讀請(qǐng)求
    consul web頁(yè)面如圖

【NoSQL】拋棄VIP,使用consul和sentinel構(gòu)建redis的高可用系統(tǒng)
【NoSQL】拋棄VIP,使用consul和sentinel構(gòu)建redis的高可用系統(tǒng)


后記:   
    1.本文中為了顯著區(qū)分兩個(gè)redis實(shí)例,對(duì)端口進(jìn)行了區(qū)分,實(shí)際應(yīng)用推薦使用相同端口(如2222)
        這樣每次訪問(wèn)redis-master.service.consul:2222都能訪問(wèn)到主實(shí)例
            每次訪問(wèn)redis-master.service.consul:2222都能訪問(wèn)到從實(shí)例
    2. consul定期執(zhí)行健康檢測(cè)腳本并接收返回值0作為服務(wù)處于正常的標(biāo)志,返回值1作為服務(wù)處于警告
      狀態(tài),除此之外任何其他返回值都被認(rèn)為服務(wù)處于故障狀態(tài)。實(shí)際使用時(shí)根據(jù)自身情況設(shè)置健康檢測(cè)腳本
      執(zhí)行的頻率
    3.這種切換架構(gòu)的便利性建立在數(shù)據(jù)庫(kù)端可以自洽的完成主從選舉與切換的特性上,同理,這種思路還
      可以用在consul+MongoDB副本集,consul+PXC集群上。
    4.官方文檔地址:`https://www.consul.io/docs/index.html`
      相關(guān)配置文件已放置在GitHub:`https://github.com/naughtyGitCat/HA_DB/tree/master/Consul`

新聞標(biāo)題:【NoSQL】拋棄VIP,使用consul和sentinel構(gòu)建redis的高可用系統(tǒng)
轉(zhuǎn)載來(lái)源:http://weahome.cn/article/gggjds.html

在線咨詢(xún)

微信咨詢(xún)

電話咨詢(xún)

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部