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

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

Redis哨兵機制講解

這篇文章主要講解了“redis哨兵機制講解”,文中的講解內(nèi)容簡單清晰,易于學習與理解,下面請大家跟著小編的思路慢慢深入,一起來研究和學習“Redis哨兵機制講解”吧!

創(chuàng)新互聯(lián)是一家集網(wǎng)站建設,曲沃企業(yè)網(wǎng)站建設,曲沃品牌網(wǎng)站建設,網(wǎng)站定制,曲沃網(wǎng)站建設報價,網(wǎng)絡營銷,網(wǎng)絡優(yōu)化,曲沃網(wǎng)站推廣為一體的創(chuàng)新建站企業(yè),幫助傳統(tǒng)企業(yè)提升企業(yè)形象加強企業(yè)競爭力。可充分滿足這一群體相比中小企業(yè)更為豐富、高端、多元的互聯(lián)網(wǎng)需求。同時我們時刻保持專業(yè)、時尚、前沿,時刻以成就客戶成長自我,堅持不斷學習、思考、沉淀、凈化自己,讓我們?yōu)楦嗟钠髽I(yè)打造出實用型網(wǎng)站。

哨兵作用

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

  • 集群監(jiān)控:負責監(jiān)控redis master和slave進程是否正常

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

  • 故障轉移:如果master節(jié)點掛掉了,會自動轉移到slave節(jié)點上

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

哨兵的核心知識

  • 故障轉移時,判斷一個master節(jié)點是否宕機了,需要大部分的哨兵都同意才行,涉及到了分布式選舉的問題

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

  • 哨兵+redis主從的部署架構,是不會保證數(shù)據(jù)零丟失的,只能保證redis集群的高可用性

sdown和odown

  • sdown和odown兩種失敗的狀態(tài)

  • sdown是主觀宕機,就一個哨兵如果自己覺得一個master宕機了,那么就是主觀宕機

  • odown是客觀宕機,如果quorum數(shù)量的哨兵都覺得一個master宕機了,那么就是客觀宕機

  • sdown達成的條件:如果一個哨兵ping一個master,超過了is-master-down-after-milliseconds指定的毫秒數(shù)之后,就認為master宕機

  • odown達成條件:如果一個哨兵在指定的時間內(nèi),收到了quorum指定數(shù)量的其他哨兵也認為那個master是宕機了,那么就認為是odown了,客觀認為master宕機了

quorum和majority

  1. quorum:確認odown的最少哨兵數(shù)量

  2. majority:授權進行主從切換的最少哨兵數(shù)量

  3. 每一個哨兵要做主備切換,首先需要quorum數(shù)量的哨兵認為odown,然后選舉出一個哨兵來做切換,這個哨兵還得得到majority哨兵的特權,才能進行切換。

  4. 如果quorummajority,那么必須quorum數(shù)量的哨兵都授權,比如5個哨兵,quorum是5,那么必須5個哨兵都同意授權才能執(zhí)行。(誰多聽誰的)

為什么哨兵至少3個節(jié)點?

哨兵集群必須部署兩個以上節(jié)點。如果哨兵集群僅僅部署了2個哨兵實例,那么它的majority就是2(2的majority=2,3的majority=2,5的majority=3,4的majority=2),如果其中一個哨兵宕機了,就無法滿足majority>=2這個條件,那么master發(fā)生故障時也就無法進行主從切換了。

工作原理

Redis哨兵機制講解

  1. 每個Sentienl以每秒鐘一次的頻率向他所知的Master,Slave以及其他的Sentinel實例發(fā)送一個ping命令

  2. 如果一個實例距離最后一次有效回復ping命令的時間超過了down-after-milliseconds選項所指的值,則這個實例會被Sentinel標記為主觀宕機

  3. 如果一個master被標記為主觀宕機,則正在監(jiān)視這個master的所有sentinel要以每一秒一次的頻率確認Master的確進入了主觀宕機狀態(tài)

  4. 當有足夠數(shù)量的Sentinel(大于等于配置文件所指的值)在指定的時間范圍內(nèi)確認master的確進入了主觀宕機狀態(tài),則master會被標記為客觀狀態(tài)

  5. 在一般情況下,每個Sentinel會以1次/10秒的頻率向他一致的所有master,slave發(fā)送INFO命令

  6. 當master被Sentinel標記為客觀宕機是,Sentinel向下線的master的所有slave發(fā)送INFO命令的頻率會從1次/10秒改為1次/秒

  7. 若沒有足夠數(shù)量的Sentinel同意master已經(jīng)下線,master的客觀宕機狀態(tài)就會被移除;若master重新想Sentinel的ping命令返回有效回復,master的主觀宕機狀態(tài)就會被移除。

哨兵模式的配置

首先配置redis的主從服務器,修改redis.conf文件如下

# 使得Redis服務器可以跨網(wǎng)絡訪問
bind 0.0.0.0
# 設置密碼
requirepass "123456"
# 指定主服務器,注意:有關slaveof的配置只是配置從服務器,主服務器不需要配置
slaveof 192.168.11.128 6379
# 主服務器密碼,注意:有關slaveof的配置只是配置從服務器,主服務器不需要配置
masterauth 123456

上述內(nèi)容主要是配置Redis服務器,從服務器比主服務器多了一個slaveof的配置和密碼

配置3個哨兵,每個哨兵都是一樣的。在Redis安裝目錄下有一個sentinel.conf文件,copy一份進行修改

# 禁止保護模式
protected-mode no
# 配置監(jiān)聽的主服務器,這里sentinel monitor代表監(jiān)控,mymaster代表服務器的名稱,可以自定義,192.168.11.128代表監(jiān)控的主服務器,6379代表端口,2代表只有兩個或兩個以上的哨兵認為主服務器不可用的時候,才會進行failover操作。
sentinel monitor mymaster 192.168.11.128 6379 2
# sentinel author-pass定義服務的密碼,mymaster是服務名稱,123456是Redis服務器密碼
# sentinel auth-pass
sentinel auth-pass mymaster 123456

啟動服務器和哨兵,進入Redis安裝目錄的src目錄

# 啟動Redis服務器進程
./redis-server ../redis.conf
# 啟動哨兵進程
./redis-sentinel ../sentinel.conf
注意啟動順序:  首先是主機(192.168.11.128)的Redis服務進程,然后啟動叢機的服務進程,最后啟動3個哨兵的服務進程  

Java中使用哨兵模式

/**
* 測試Redis哨兵模式
* @author liu
*/
public class TestSentinels {
   @SuppressWarnings("resource")
   @Test
   public void testSentinel() {
       JedisPoolConfig jedisPoolConfig = new JedisPoolConfig();
       jedisPoolConfig.setMaxTotal(10);
       jedisPoolConfig.setMaxIdle(5);
       jedisPoolConfig.setMinIdle(5);
       // 哨兵信息
       Set sentinels = new HashSet<>(Arrays.asList("192.168.11.128:26379",
               "192.168.11.129:26379","192.168.11.130:26379"));
       // 創(chuàng)建連接池
       JedisSentinelPool pool = new JedisSentinelPool("mymaster", sentinels,jedisPoolConfig,"123456");
       // 獲取客戶端
       Jedis jedis = pool.getResource();
       // 執(zhí)行兩個命令
       jedis.set("mykey", "myvalue");
       String value = jedis.get("mykey");
       System.out.println(value);
   }
}

感謝各位的閱讀,以上就是“Redis哨兵機制講解”的內(nèi)容了,經(jīng)過本文的學習后,相信大家對Redis哨兵機制講解這一問題有了更深刻的體會,具體使用情況還需要大家實踐驗證。這里是創(chuàng)新互聯(lián),小編將為大家推送更多相關知識點的文章,歡迎關注!


網(wǎng)站題目:Redis哨兵機制講解
文章出自:http://weahome.cn/article/gcsjhg.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部