<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>

          Spring Boot 如何快速集成 Redis 哨兵?

          共 2344字,需瀏覽 5分鐘

           ·

          2020-09-05 01:15

          Java技術(shù)棧

          www.javastack.cn

          關(guān)注閱讀更多優(yōu)質(zhì)文章



          上一篇:Spring Boot 如何快速集成 Redis?

          前面的分享?xiàng)iL介紹了如何使用 Spring Boot 快速集成 Redis,上一篇是單機(jī)版,也有粉絲留言說有沒有 Redis Sentinel 的集成教程,這篇開搞!

          Redis Sentinel 介紹

          Redis Sentinel:哨兵,放哨,看中文名字就知道它是一種 Redis 高可用解決方案,主要是針對 Redis 主從模式實(shí)現(xiàn)主從節(jié)點(diǎn)監(jiān)控、故障自動切換。

          沒有 Redis Sentinel 架構(gòu)之前,如果主節(jié)點(diǎn)掛了,需要運(yùn)維人員手動進(jìn)行主從切換,然后更新所有用到的 Redis IP 地址參數(shù)再重新啟動系統(tǒng),所有恢復(fù)操作都需要人為干預(yù),如果半夜掛了,如果系統(tǒng)很多,如果某個(gè)操作搞錯(cuò)了,等等,這對運(yùn)維人員來說簡直就是惡夢。

          有了 Redis Sentinel,主從節(jié)點(diǎn)故障都是自動化切換,應(yīng)用程序參數(shù)什么也不用改,對于客戶端來說都是透明無縫切換的,運(yùn)維人員再也不用擔(dān)驚受怕了。

          如一個(gè) 1 主 3 從的 Redis 架構(gòu)如下:

          加入 Redis 哨兵之后的架構(gòu)如下:

          為了保證 Redis Sentinel 架構(gòu)自身的高可用性,自身也不能有單點(diǎn),一般也要由 3 個(gè)或以上 Sentinel 節(jié)點(diǎn)組成,一起負(fù)責(zé)監(jiān)控主從節(jié)點(diǎn),當(dāng)大部分 Sentinel 節(jié)點(diǎn)認(rèn)為主節(jié)點(diǎn)不可用時(shí),會選一個(gè) Sentinel 節(jié)點(diǎn)進(jìn)行故障切換。

          哨后架構(gòu)的搭建這里不展開了,大家可以移步公眾號Java技術(shù)棧,關(guān)于 Redis 單機(jī)、哨后、集群的搭建、以及往期 Redis 和 Spring Boot 集成、分布式鎖實(shí)戰(zhàn)教程等在公眾號Java技術(shù)棧后臺回復(fù)redis進(jìn)行翻閱。

          Spring Boot & Redis Sentinel 實(shí)戰(zhàn)

          搞懂了 Redis 哨兵的用處之后,再來看一下 Spring Boot 如何快速集成 Redis Sentinel。

          要知道如何自動配置 Redis Sentinel,除了看官方教程(不一定詳細(xì)),最好的方式就是看源碼了。

          看過上篇的都知道 Spring Boot Redis 的默認(rèn)客戶端是:Lettuce,我們再來看下 LettuceConnectionFactory 的自動配置源碼:

          org.springframework.boot.autoconfigure.data.redis.LettuceConnectionConfiguration

          如源碼所示,我們可以知道 Redis 連接自動配置的優(yōu)先順序是:

          Redis Sentinel(哨兵) > Redis Cluster(集群) > Standalone(單機(jī))

          哨兵模式優(yōu)先極是最高的,再來看下 getSentinelConfig 方法源碼:

          master、sentinels 是必須參數(shù),password、SentinelPassword 是可選的,database 默認(rèn)是第 0 個(gè)數(shù)據(jù)庫。

          配置參數(shù)源碼:

          org.springframework.boot.autoconfigure.data.redis.RedisProperties.Sentinel

          所以,我們只需要提供 Redis Sentinel 的基本配置參數(shù)即可。

          application.yml 配置如下:

          #?關(guān)注公眾號Java技術(shù)??锤?/span>
          spring:
          ??profiles:
          ????active:?sentinel

          ---
          spring:
          ??profiles:?standalone
          ??redis:
          ????host:?192.168.1.110
          ????port:?6379
          ????password:?redis2020
          ????database:?1

          ---
          spring:
          ??profiles:?sentinel
          ??redis:
          ????password:?redis2020
          ????sentinel:
          ??????master:?mymaster
          ??????nodes:
          ????????-?192.168.1.110:26379
          ????????-?192.168.1.111:26379
          ????????-?192.168.1.112:26379

          這樣就能在單機(jī)和哨兵模式下切換,這是 yaml 配置的優(yōu)勢,一個(gè)文件搞定多套環(huán)境配置,不熟悉的關(guān)注公眾號Java技術(shù)棧閱讀我寫的 Spring Boot 系列文章,當(dāng)然這里配置兩套只是為了測試,實(shí)際項(xiàng)目這樣做沒有意義。

          配置成功后,該怎么使用還是怎么使用了,Redis Sentinel 對于客戶端來說是透明的。

          最近,如果覺得有收獲,歡迎在看、轉(zhuǎn)發(fā)。

          最近熱文:
          1、重磅!《Java開發(fā)手冊(嵩山版)》最新發(fā)布
          2、打破你的認(rèn)知!Java空指針居然還能這樣玩
          3、吊打 Tomcat ,Undertow 性能很炸??!
          4、Spring Boot 太狠了,一次發(fā)布 3 個(gè)版本!
          5、Spring Boot 如何快速集成 Redis?
          6、盤點(diǎn) 6 個(gè)被淘汰的 Java 技術(shù),曾經(jīng)風(fēng)光過!
          7、Spring Boot Redis 實(shí)現(xiàn)分布式鎖,真香!
          8、國人開源了一款小而全的 Java 工具類庫!
          9、國人開源了一款超好用的 Redis 客戶端?。?/a>
          10、同事寫了個(gè)隱藏 bug,我排查了 3 天!
          掃碼關(guān)注Java技術(shù)棧公眾號閱讀更多干貨。

          點(diǎn)擊「閱讀原文」獲取面試題大全~

          瀏覽 71
          點(diǎn)贊
          評論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          評論
          圖片
          表情
          推薦
          點(diǎn)贊
          評論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          <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>
                  国产高清视频在线观看 | 日韩精品人妻一区二区 | 天天操天天日天天搞天天爽天天干 | 亚洲无在线播放 | 欧美成人699www |