自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

我們一起搞定Redis腦裂問(wèn)題

數(shù)據(jù)庫(kù) Redis
在假故障期間滿足 min-slaves-to-write 和 min-slaves-max-lag 的要求,那么主節(jié)點(diǎn)就會(huì)被禁止寫(xiě)入,腦裂造成的數(shù)據(jù)丟失情況自然也就解決了。

Redis 腦裂問(wèn)題是指,在 Redis 哨兵模式或集群模式中,由于網(wǎng)絡(luò)原因,導(dǎo)致主節(jié)點(diǎn)(Master)與哨兵(Sentinel)和從節(jié)點(diǎn)(Slave)的通訊中斷,此時(shí)哨兵就會(huì)誤以為主節(jié)點(diǎn)已宕機(jī),就會(huì)在從節(jié)點(diǎn)中選舉出一個(gè)新的主節(jié)點(diǎn),此時(shí) Redis 的集群中就出現(xiàn)了兩個(gè)主節(jié)點(diǎn)的問(wèn)題,就是 Redis 腦裂問(wèn)題。

腦裂問(wèn)題影響

Redis 腦裂問(wèn)題會(huì)導(dǎo)致數(shù)據(jù)丟失,為什么呢?來(lái)看腦裂問(wèn)題產(chǎn)生的過(guò)程:

圖片圖片

而最后一步,當(dāng)舊的 Master 變?yōu)?Slave 之后,它的執(zhí)行流程如下:

  1. Slave(舊 Master)會(huì)向 Master(新)申請(qǐng)全量數(shù)據(jù)。
  2. Master 會(huì)通過(guò) bgsave 的方式生成當(dāng)前 RDB 快照,并將 RDB 發(fā)送給 Slave。
  3. Slave 拿到 RDB 之后,先進(jìn)行 flush 清空當(dāng)前數(shù)據(jù)(此時(shí)第四步舊客戶端給他的發(fā)送的數(shù)據(jù)就丟失了)。
  4. 之后再加載 RDB 數(shù)據(jù),初始化自己當(dāng)前的數(shù)據(jù)。

從以上過(guò)程中可以看出,在執(zhí)行到第三步的時(shí)候,原客戶端在舊 Master 寫(xiě)入的數(shù)據(jù)就丟失了,這就是數(shù)據(jù)丟失的問(wèn)題。

如何解決腦裂問(wèn)題?

腦裂問(wèn)題只需要在舊 Master 恢復(fù)網(wǎng)絡(luò)之后,切換身份為 Slave 期間,不接收客戶端的數(shù)據(jù)寫(xiě)入即可,那怎么解決這個(gè)問(wèn)題呢?

Redis 為我們提供了以下兩個(gè)配置,通過(guò)以下兩個(gè)配置可以盡可能的避免數(shù)據(jù)丟失的問(wèn)題:

  • min-slaves-to-write:與主節(jié)點(diǎn)通信的從節(jié)點(diǎn)數(shù)量必須大于等于該值主節(jié)點(diǎn),否則主節(jié)點(diǎn)拒絕寫(xiě)入。
  • min-slaves-max-lag:主節(jié)點(diǎn)與從節(jié)點(diǎn)通信的 ACK 消息延遲必須小于該值,否則主節(jié)點(diǎn)拒絕寫(xiě)入。

這兩個(gè)配置項(xiàng)必須同時(shí)滿足,不然主節(jié)點(diǎn)拒絕寫(xiě)入。

在假故障期間滿足 min-slaves-to-write 和 min-slaves-max-lag 的要求,那么主節(jié)點(diǎn)就會(huì)被禁止寫(xiě)入,腦裂造成的數(shù)據(jù)丟失情況自然也就解決了。

責(zé)任編輯:武曉燕 來(lái)源: 磊哥和Java
相關(guān)推薦

2024-12-19 17:09:55

Redis哨兵模式數(shù)據(jù)庫(kù)

2024-04-18 08:00:00

腦裂問(wèn)題Redis哨兵模式

2024-02-28 08:41:51

Maven沖突版本

2022-05-07 07:43:07

Redis存儲(chǔ)系統(tǒng)數(shù)據(jù)庫(kù)

2023-10-26 08:38:43

SQL排名平分分區(qū)

2021-10-11 10:25:33

排列nums數(shù)組

2023-05-29 09:07:10

SQLpageSize主鍵

2022-01-17 06:59:40

Grep指令linux

2021-12-29 08:27:05

ByteBuffer磁盤(pán)服務(wù)器

2021-08-27 07:06:10

IOJava抽象

2024-02-20 21:34:16

循環(huán)GolangGo

2022-03-08 17:52:58

TCP格式IP

2021-07-28 07:53:20

Github ActiDotnet 應(yīng)用

2023-08-04 08:20:56

DockerfileDocker工具

2021-01-12 05:08:49

DHCP協(xié)議模型

2021-08-27 07:06:09

DubboDocker技術(shù)

2022-03-31 18:59:43

數(shù)據(jù)庫(kù)InnoDBMySQL

2022-05-24 08:21:16

數(shù)據(jù)安全API

2023-08-10 08:28:46

網(wǎng)絡(luò)編程通信

2022-10-18 07:33:57

Maven構(gòu)建工具
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)