記一次RedisCluster宕機引發(fā)的事故

記一次 Redis Cluster 宕機引發(fā)的事故

創(chuàng)新互聯(lián)建站專注為客戶提供全方位的互聯(lián)網(wǎng)綜合服務(wù),包含不限于做網(wǎng)站、成都網(wǎng)站建設(shè)、順昌網(wǎng)絡(luò)推廣、微信平臺小程序開發(fā)、順昌網(wǎng)絡(luò)營銷、順昌企業(yè)策劃、順昌品牌公關(guān)、搜索引擎seo、人物專訪、企業(yè)宣傳片、企業(yè)代運營等,從售前售中售后,我們都將竭誠為您服務(wù),您的肯定,是我們最大的嘉獎;創(chuàng)新互聯(lián)建站為所有大學(xué)生創(chuàng)業(yè)者提供順昌建站搭建服務(wù),24小時服務(wù)熱線:18980820575,官方網(wǎng)址:bm7419.com

導(dǎo)讀:

redis官方號稱支持并發(fā)11萬讀操作,并發(fā)8萬寫操作。由于優(yōu)異的性能和方便的操作,相信很多人都在項目中都使用了Redis,為了不讓應(yīng)用過分的依賴 Redis服務(wù),Redis的作用只作為提升應(yīng)用并發(fā)和降低應(yīng)用響應(yīng)時間存在,即使Redis出現(xiàn)異常,應(yīng)用程序也不應(yīng)該出現(xiàn)提供服務(wù)失敗問題,對此拍拍信最近安排了一次全環(huán)境的Redis Cluster 宕機演練。

許彬:拍拍信架構(gòu)負責(zé)人。

朱榮松:拍拍信架構(gòu)開發(fā)工程師。

一、演練過程

Redis 集群環(huán)境:

1. 測試環(huán)境:

Redis Cluster 配置 :Redis 3主 3從 一共6個節(jié)點。

2. 預(yù)發(fā)環(huán)境:

Redis Cluster 配置 :Redis 3主 3從 一共6個節(jié)點。

下面是我們操作的時間線:

  • 第一天

程序運行中關(guān)閉任意一臺從節(jié)點,測試一天均無異常。

  • 第二天

程序運行中關(guān)閉任意一臺從節(jié)點,程序未發(fā)現(xiàn)異常,測試一天未發(fā)現(xiàn)異常。

  • 第三天

預(yù)發(fā)環(huán)境有應(yīng)用發(fā)版,出現(xiàn)異常程序無法啟動。

……

二、問題描述

首先說明幾個前提:

1. 測試與預(yù)發(fā)環(huán)境目前關(guān)閉的都是任意一臺Redis從節(jié)點。

2. 測試環(huán)境經(jīng)過反復(fù)測試無問題才開始關(guān)閉預(yù)發(fā)環(huán)境節(jié)點。

3. 預(yù)發(fā)環(huán)境重啟被關(guān)閉的Redis節(jié)點后異常消失。

4. 連接Redis客戶端使用的是Java語言中使用范圍較廣的Jedis。

那么為什么測試環(huán)境在經(jīng)過反復(fù)測試沒有問題,到預(yù)發(fā)環(huán)境會出現(xiàn)問題?

三、原理

分析問題前先簡單解釋下Redis Cluster實現(xiàn)原理。簡單來說Redis

場景

操作(多節(jié)點均同時操作)

Redis寫總量

Redis讀總量

錯誤量

總耗時(s)

錯誤率

程序運行中

關(guān)主(關(guān)任一主)

100000

100000

3084

100

0.031

關(guān)主(關(guān)任一主)

100000

100000

1482

102

0.015

關(guān)主(關(guān)任一主)

100000

100000

3053

97.6

0.031

關(guān)從(關(guān)任一從)

100000

100000

0

109.2

0

關(guān)從(關(guān)任一從)

100000

100000

0

90.1

0

關(guān)從(關(guān)任一從)

100000

100000

0

88.9

0

主從一起關(guān)(關(guān)任一對)

100000

100000

32613

210.1

0.326

主從一起關(guān)(關(guān)任一對)

100000

100000

29148

169.8

0.291

主從一起關(guān)(關(guān)任一對)

100000

100000

32410

173.7

0.324

所有主全關(guān)

100000

100000

100000

353.4

1

所有從全關(guān)

100000

100000

0

87.7

0

只留一臺主

100000

100000

100000

357.1

1

表1

從測試結(jié)果看,集群Master的選舉過程是由Master參與選舉的。

1. 如果半數(shù)以上 Master 處于關(guān)閉狀態(tài)那么整個集群處于不可用狀態(tài)。

2. 關(guān)閉任意一對主從節(jié)點會導(dǎo)致部分(大約為整個集群的1/3)失敗。

3. 關(guān)閉任意一主,會導(dǎo)致部分寫操作失敗,是由于從節(jié)點不能執(zhí)行寫操作,在Slave升級為Master期間會有少量的失敗。

4. 關(guān)閉從節(jié)點對于整個集群沒有影響

分享名稱:記一次RedisCluster宕機引發(fā)的事故
鏈接地址:http://bm7419.com/article2/iihsic.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供品牌網(wǎng)站制作、移動網(wǎng)站建設(shè)、網(wǎng)站收錄自適應(yīng)網(wǎng)站、網(wǎng)站內(nèi)鏈、網(wǎng)站建設(shè)

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

搜索引擎優(yōu)化