<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高級篇-8 Redis哨兵通知Java代碼客戶端

          共 2544字,需瀏覽 6分鐘

           ·

          2023-06-06 06:30

          在上一篇,我們搭建哨兵集群的時候,已經(jīng)驗證了哨兵對集群的監(jiān)控及故障轉(zhuǎn)移功能。本文,咱們就來講講哨兵的第三個功能:通知。也就是RedisTemplate的哨兵模式。

          在sentinel集群監(jiān)管下的Redis主從集群,其節(jié)點會因為自動故障轉(zhuǎn)移而發(fā)生變化,Redis的客戶端必須感知這種變化,及時更新連接信息。spring的RedisTemplate底層利用lettuce實現(xiàn)了節(jié)點的感知和自動切換。下面,我們通過一個測試來實現(xiàn)RedisTemplate集成哨兵機制。

          想要讓RedisTemplate實現(xiàn)哨兵模式,操作步驟如下:

          1:引入依賴;

          2:配置senntinel相關(guān)信息;

          3:配置讀寫分離

          4:測試

          一:引入依賴

          在pom文件中引入相關(guān)依賴

          ? ? ? ? ?

          ??? ? ? ? ? ?org.springframework.boot

          ??? ? ? ? ? ?spring-boot-starter-data-redis

          二:配置Redis sentinel相關(guān)信息

          在配置文件application.yml中指定Redis的sentienl相關(guān)信息。

          spring:

          ? redis:

          ??? sentinel:

          ????? master:?mymaster #自定義的master名字

          ????? nodes:?# 指定Redis-sentinel集群地址

          ??????? -?192.168.1.11:27001

          ??????? -?192.168.1.11:27002

          ??????? -?192.168.1.11:27003

          ? ? ? ? ?198c9620414386b71f8e4171a37e2951.webp

          三:配置lettuce讀寫分離

          在項目中,添加配置類(可以在啟動類中,也可以新寫一個@Configuration的類),添加一個新的bean。如下:

          @Bean

          public LettuceClientConfigurationBuilderCustomizer clientConfigurationBuilderCustomizer(){

          ??? return?clientConfigurationBuilder -> {

          ??????? clientConfigurationBuilder.readFrom(ReadFrom.REPLICA_PREFERRED);

          ??? };

          }

          ? ? ? ? ?

          51480aac988bebf68c683a6343eb75be.webp

          這個bean中配置的就是讀寫策略:ReadFrom.REPLICA_PREFERRED。其中讀寫策略包括四種:

          ① MASTER:從主節(jié)點讀取;

          ② MASTER_PREFERRED:優(yōu)先從master節(jié)點讀取,master不可用才讀取replica

          ③ REPLICA:從slave(replica)節(jié)點讀取;

          ④ REPLICA_PREFERRED:優(yōu)先從slave(replica)節(jié)點讀取,如果所有的slave都不可用的時候,才從master讀取。

          建議采用第四種方案。

          四:測試

          代碼修改完成之后,刷新pom依賴,重啟項目,查看啟動日志。

          注意:查看啟動日志,將日志級別設(shè)置為debug。這樣便于觀察。

          項目啟動會,訪問想Redis中set一個key.查看控制臺日志:

          因為sentinel是集群模式,項目啟動后,要選擇一個地址進行連接。

          64fc66e9f5b4bcbc98fb20a5fad2860b.webp

          lettuce采用訂閱模式,訂閱sentinel的

          74f6651e097dbcd9124bd00479869343.webp

          當(dāng)執(zhí)行set的時候,因為set是寫操作,只能在master上進行寫操作。所以,RedisTemplate會切換與7002這臺master機器進行連接。如下圖:

          41d81032985344144e43e49742ee858c.webp

          目前master是7002,我們關(guān)閉7002,由于sentinel監(jiān)控了集群,會執(zhí)行故障遷移,會產(chǎn)生一個新的master出來。我們關(guān)閉7002.當(dāng)新master選舉出來之后,在執(zhí)行set命令。看看日志。

          7002關(guān)閉后,我們從sentinel的日志中,可以看到7003成了新的master。如下圖:

          73b7485229d92debf7c447955586229f.webp

          在選舉出新master之前,項目會報錯。控制臺空的錯誤如下圖:

          4db3c6c8452ba7821f8d8eca52122462.webp

          當(dāng)新的master選舉后,項目日志就正常了。我們在訪問set,看看控制臺日志:

          755f05471ef242ab31566a2d0dd7249e.webp

          主從切換自動完成。

          執(zhí)行讀操作,因為我們設(shè)置讀寫模式是:優(yōu)先slave,當(dāng)所有slave都不可用的時候才選擇master。因為當(dāng)前我們slave都可用。所以任意選擇。日志如下圖:

          4e866c23edd2e830311bf7476c30d447.webp

          ? ? ? ? ?

          瀏覽 113
          點贊
          評論
          收藏
          分享

          手機掃一掃分享

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

          手機掃一掃分享

          分享
          舉報
          <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>
                  夜夜骚av.一区二区三区 | 77777精品成人免费A片 | 麻豆成人av影院 漫画视频搞黄网站 | 华女与黑人91A∨ | 爱逼导航|