Redis的哨兵模式Sentinel

sentinel功能

redis的sentinel系統用于管理多個redis服務器,該系統主要執行三個任務:監控、提醒、自動故障轉移。

1、監控(Monitoring): Redis Sentinel實時監控主服務器和從服務器運行狀態,并且實現自動切換

2、提醒(Notification):當被監控的某個 Redis 服務器出現問題時, Redis Sentinel 可以向系統管理員發送通知, 也可以通過 API 向其他程序發送通知。這個需要我們指定相關的代碼,比如發郵件、事務的處理等等

3、自動故障轉移(Automatic failover): 當一個主服務器不能正常工作時,Redis Sentinel 可以將一個從服務器升級為主服務器, 并對其他從服務器進行配置,讓它們使用新的主服務器。當應用程序連接Redis 服務器時, Redis Sentinel會告之新的主服務器地址和端口

注意:在使用sentinel監控主從節點的時候,從節點需要是使用動態方式配置的,如果直接修改配置文件,后期sentinel實現故障轉移的時候會出問題

主觀下線和客觀下線:

1、主觀下線狀態:當一個sentinel認為一個redis服務連接不上的時候,會給這個服務打個標記為下線狀態。

2、客觀下線狀態:當多個sentinel認為一個redids連接不上的時候,則認為這個redis服務確實下線了。這里的多個sentinel的個數可以在配置文件中設置。一般集群中一半的從節點都認為主機下線了,就進行主機選舉機制,選出新的主機節點

sentinel配置

  • sentinel?monitor?mymaster?192.168.33.130?6379?2?????#最后一個參數視情況決定 ,一般為從節點數量的一半;最后一個參數為需要判定客觀下線所需的主觀下線sentinel個數,這個參數不可以大于sentinel個數
  • 啟動sentinel? ??redis-sentinel?sentinel.conf

sentinel的一些命令

  • INFO? ?sentinel的基本狀態信息
  • SENTINEL?masters? ?列出所有被監視的主服務器,以及這些主服務器的當前狀態
  • SENTINEL?slaves?<master?name>??列出給定主服務器的所有從服務器,以及這些從服務器的當前狀態
  • SENTINEL?get-master-addr-by-name?<master?name>??返回給定名字的主服務器的 IP 地址和端口號
  • SENTINEL?reset?<pattern>??重置所有名字和給定模式 pattern 相匹配的主服務器。重置操作清除主服務器目前的所有狀態, 包括正在執行中的故障轉移, 并移除目前已經發現和關聯的, 主服務器的所有從服務器和 Sentinel
  • SENTINEL?failover?<master?name>??當主服務器失效時, 在不詢問其他 Sentinel 意見的情況下, 強制開始一次自動故障遷移,但是它會給其他sentinel發送一個最新的配置,其他sentinel會根據這個配置進行更新

具體操作

  • 新建sentinel文件夾,在其下新建20190、20191、20192和scripts文件夾,在文件夾的名字也是其對應的端口名字,在端口名字文件夾下新建conf、data和logs文件夾
  • mkdir sentinel
  • mkdir -pv {20190,20191,20192}/{conf,data,logs}
  • 啟動方式redis-server 20190/conf/sentinel.conf --sentinel
  • 或者redis-sentinel 20190/cong]f/sentinel.conf
  • 在sentinel文件夾下,此時此文件下存放的就是20190、20191和20192文件夾,使用命令cp 20190/conf/sentinel.conf 20191/conf完成conf文件的拷貝,使用命令sed -i "s/20190/20191/g" 20191/conf/sentinel.conf完成將20190替換為20191的文本替換,完成即可,別的不需要動,具體內容如下
#20190
#指定端口號
port 20190
#指定后臺運行
daemonize yes
#指定內網地址
bind 192.168.13.50
#指定數據文件夾
dir "/home/bfxy/servers/sentinel/20190/data"
#指定日志問價夾
logfile "/home/bfxy/servers/sentinel/20190/logs/sentinel.log"#指定master的連接名字是mymaster,連接的地址和端口號,2代表如果兩個從節點認為主節點失效了,就進行master的選舉
sentinel monitor mymaster 192.168.13.50 10191 2
#設置超時時間20秒
sentinel failover-timeout mymaster 20000
#指定腳本文件
sentinel notification-script mymaster /home/bfxy/servers/sentinel/scripts/notify.sh
# Generated by CONFIG REWRITE
sentinel client-reconfig-script mymaster /home/bfxy/servers/sentinel/scripts/reconfig.sh
sentinel config-epoch mymaster 0
sentinel leader-epoch mymaster 8
sentinel known-sentinel mymaster 192.168.13.50 20191 e3f1be1924eba40a3698be5d81433ce133289315
sentinel known-sentinel mymaster 192.168.13.50 20192 8d47dce1af43f144d7b868969740cefef7d0e034
sentinel current-epoch 8
  • 在src目錄下,使用命令redis-sentinel /user/local/redis-4.0.14/sentinel/20190/conf/sentinel.conf啟動服務,20191和20192也是這樣操作
  • 在src目錄下,使用命令redis-cli? -h 192.168.133.130 -p 20190,使用客戶端連接到服務器??

?

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/447329.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/447329.shtml
英文地址,請注明出處:http://en.pswp.cn/news/447329.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

csdn 到底怎么了?不準轉載?

我轉載了20多文章&#xff0c;很多人閱讀過&#xff0c;但是今天看到閱讀量是0&#xff0c; csdn 到底怎么了&#xff1f; 對用戶這樣&#xff1f;請大家看看是不是這樣&#xff1f;

python3之后版本讀取網頁的內容

import urllib.request url "http://helloworldbook2.com/data/message.txt" #直接通過url來獲取網頁數據 print(第一種) response urllib.request.urlopen(url) code response.getcode() html response.read() mystr html.decode("utf8") response.c…

三十功名塵與土——資深程序員生涯自白

摘要&#xff1a;作者Codist&#xff08;網名&#xff09;在程序員崗位上工作了三十多年&#xff0c;在這期間他悟出了一些真理&#xff0c;比如&#xff0c;成功來自對失敗的總結學習&#xff1b;條條大路通羅馬&#xff0c;羅馬并不在乎你用什么方式到達。你在生活中積累了哪…

linux/unix核心設計思想

1&#xff09; 程序應該小而專一&#xff0c;程序應該盡量的小&#xff0c;且只專注于一件事上&#xff0c;不要開發那些看起來有用但是90%的情況都用不到的特性&#xff1b; 2&#xff09; 程序不只要考慮性能&#xff0c; 程序的可移植性更重要&#xff0c;shell和perl&…

操作系統環境變量

在 Java中&#xff0c;許多類都是 Iterable &#xff0c;主要包括所有的 Collection 類&#xff08;但不包括各種 Maps &#xff09;。 例如&#xff0c;下面的代碼可以顯示所有的操作系統環境變量&#xff1a; // collections/EnvironmentVariables.java // {VisuallyInspect…

用Unix的設計思想來應對多變的需求

摘要&#xff1a;無論是Unix設計&#xff0c;還是面向對象設計&#xff0c;還是別的什么如SOA&#xff0c;ECB&#xff0c;消息&#xff0c;事件&#xff0c;MVC&#xff0c;網絡七層模型&#xff0c;數據庫設計&#xff0c;等等&#xff0c;他們都在干三件事——解耦&#xff…

學習較底層編程:動手寫一個C語言編譯器

動手編寫一個編譯器&#xff0c;學習一下較為底層的編程方式&#xff0c;是一種學習計算機到底是如何工作的非常有效方法。 編譯器通常被看作是十分復雜的工程。事實上&#xff0c;編寫一個產品級的編譯器也確實是一個龐大的任務。但是寫一個小巧可用的編譯器卻不是這么困難。…

Arrays.deepToString() 方法同時適用于基元數組和對象數組

Arrays.deepToString() 方法同時適用于基元數組和對象數組&#xff1a; import java.util.*;public class MultiDimWrapperArray {public static void main(String[] args) {Integer[][] a1 { // Autoboxing{ 1, 2, 3, },{ 4, 5, 6, },};Double[][][] a2 { // Autoboxing{ {…

高效程序員的7個共同特征

要想成為高效的程序員&#xff0c;你需要具備一定的綜合素質才能夠讓你用你所掌握的技能、經驗和知識編寫出有效的代碼。有一些開發人員在技術方面具備一定的技巧&#xff0c;但他們永遠無法成為高效的程序員&#xff0c;就是因為他們缺乏所需的其它幾項特質。本文將給出成為一…

java.util.Array中的方法

概述 asList(): 獲取任何序列或數組&#xff0c;并將其轉換為一個 列表集合 &#xff08;集合章節介紹了此方法&#xff09;。 copyOf()&#xff1a;以新的長度創建現有數組的新副本。 copyOfRange()&#xff1a;創建現有數組的一部分的新副本。 equals()&#xff1a;比較兩…

有關編程的12個猜想

摘要&#xff1a;編程世界的將來如何目前仍難預料&#xff0c;但可以肯定的一點是技術一直在加速發展。本文搜羅出12個獨特的編程視角猜想&#xff0c;一起來看看有哪些猜想在不久的將來就能變為現實。 編程世界的將來如何目前仍難預料&#xff0c;但可以肯定的一點是技術一直…

面試中如何剔除“魚目混珠”程序員?

公司招聘面試事宜是一個耗時耗錢的項目&#xff0c;從挑選簡歷開始&#xff0c;還要花更多的時間面試候選人。有的時候這些人才機構會向你保證這些人都是Java天才、SQL專家、堆棧開發者等等&#xff0c;但實際上真實情況遠不及你想想的。對于一個公司來說&#xff0c;執行招聘面…

InputStream 類型

輸入流類型 I/O-1 類功能構造器參數如何使用ByteArrayInputStream允許將內存的緩沖區當做 InputStream 使用緩沖區&#xff0c;字節將從中取出作為一種數據源&#xff1a;將其與 FilterInputStream 對象相連以提供有用接口StringBufferInputStream將 String 轉換成 InputStr…

java容器相關問題

同步類容器 1&#xff0c;這些復合操作在多線程并發地修改容器時&#xff0c;可能會表現出意外的行為&#xff0c;最經典的便是ConcurrentModificationException&#xff0c;原因是當容器迭代的過程中&#xff0c;被并發的修改了內容&#xff0c;這是由于早期迭代器設計的時候…

趣文:如果編程語言是車

C語言是全能手&#xff0c;小巧&#xff0c;強大&#xff0c;所向披靡&#xff0c;可靠&#xff0c;任何事情都能對付。 C是新的C&#xff0c;雙倍的能力&#xff0c;雙倍的尺寸&#xff0c;適應險惡的環境&#xff0c;但是你如果沒練好就去駕駛&#xff0c;很可能會撞車。 C#是…

Java 線程安全

線程安全 線程安全概念&#xff1a;當多個線程訪問某一個類&#xff08;對象或方法&#xff09;時&#xff0c;這個類始終都能表現出正確的行為&#xff0c;那么這個類&#xff08;對象或方法&#xff09;就是線程安全的。synchronized&#xff1a;可以在任意對象及方法上加鎖…

開發者應該了解的API技術清單!

摘要&#xff1a;有人說&#xff0c;有API的地方就有App&#xff0c;借助這些API開發者輕松構建出一款應用&#xff0c;極大地提高開發效率和開發質量。文中整理了一份API服務清單&#xff0c;內容涵蓋&#xff1a;監控/調試、 CDN 、數據庫、儀表盤、支付、通信等方面&#xf…

提高程序員職場價值的10大技巧

如果你已經是個很牛叉的程序員&#xff0c;但是依然覺得覺得還不夠的話&#xff0c;歡迎閱讀此文。本文旨在幫助各位更上一層樓。 你是不是覺得自己已經掌握了所有的編程技巧&#xff1f;別太自以為是了&#xff01; 會寫代碼的確很重要&#xff0c;但是要拿到更好薪水&#…

google python的風格規范

點擊鏈接&#xff0c;查看內容

IT人應當知道的10個行業小內幕

如果你打算從事IT行業或剛進入這個行業&#xff0c;也許本文下面的小內幕會嚇到你&#xff0c;因為這些事平常都不會公開討論的。如果你是IT資深人士&#xff0c;或許你已經遇到其中的大部分了。如果你愿意&#xff0c;請一起來參與討論吧。 這些內幕大多數是針對網絡管理員、…