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

Redis集群的高可用性

數(shù)據(jù)庫 Redis
在本文中,我們將研究 Redis 集群的高可用性、Redis 集群的自動故障轉(zhuǎn)移及 Redis 集群中的腦裂問題及其解決方案三個主題。

在本文中,我們將研究以下主題:

  • Redis集群的高可用性。
  • Redis集群的自動故障轉(zhuǎn)移。
  • Redis集群中的腦裂問題及其解決方案。

問題: Redis-Cluster如何提供高可用性?

答案: 高可用性是指集群在面臨某些故障時仍能保持操作能力。例如,集群可以檢測到主分片失敗并在無需外部手動干預(yù)的情況下將副本提升為主分片。

問題: Redis-Cluster如何提供自動故障轉(zhuǎn)移?

答案: Redis-Cluster可以迅速了解主分片何時失敗,并且可以將其副本晉升為新主分片。

  • 假設(shè)我們?yōu)槊總€主分片都有一個副本。如果我們的數(shù)據(jù)分布在三個Redis服務(wù)器之間,我們將需要一個六成員的集群,其中三個主分片和三個副本。
  • 所有六個分片通過TCP相互連接,并不斷地相互ping并交換消息。這些消息允許集群確定哪些分片是活動的。
  • 當(dāng)足夠多的分片報告給定主分片未響應(yīng)它們時,它們可以同意觸發(fā)故障轉(zhuǎn)移,并將分片的副本提升為新的主分片。在觸發(fā)故障轉(zhuǎn)移之前需要同意離線同行的分片數(shù)量在集群創(chuàng)建時是可配置的。

問題: 用Redis-Cluster演示腦裂的情況?

答案: 以下是腦裂情況的演示方式:

步驟#1: 想象一下,我們有一個具有三個主分片和每個主分片一個副本的Redis-Cluster??傮w而言,我們的Redis集群是一個六成員的集群,其中有三個主分片和三個副本。進(jìn)一步想象,網(wǎng)絡(luò)分區(qū)已經(jīng)發(fā)生,即左側(cè)的組將無法與右側(cè)的組中的分片通信。

現(xiàn)在,兩個集群組都認(rèn)為它們處于脫機(jī)狀態(tài),兩者都將觸發(fā)任何主分片的故障轉(zhuǎn)移,導(dǎo)致左側(cè)具有所有主分片,右側(cè)也將具有所有主分片。

步驟#2: 兩側(cè)認(rèn)為它們具有所有主分片,將繼續(xù)接收修改數(shù)據(jù)的客戶端請求。這是一個問題,因為也許客戶端A在左側(cè)將鍵foo的值設(shè)置為bar,但客戶端B在右側(cè)將相同鍵的值設(shè)置為baz。

步驟#3: 當(dāng)網(wǎng)絡(luò)分區(qū)被刪除并且分片嘗試重新連接時,我們將會有沖突,因為我們有兩個保存不同數(shù)據(jù)的分片,聲稱是主分片,我們不會知道哪些數(shù)據(jù)是有效的。這稱為腦裂情況,在分布式系統(tǒng)的世界中是一個非常常見的問題。

問題: 如何解決腦裂的問題?

答案: 在集群中保持奇數(shù)個主分片和每個主分片兩個副本。以下是解決此問題的詳細(xì)解決方案:

  • 為防止在Redis集群中發(fā)生一種稱為腦裂情況的情況,始終保持奇數(shù)個分片。
  • 現(xiàn)在,當(dāng)我們得到網(wǎng)絡(luò)分割時,左側(cè)和右側(cè)的組將進(jìn)行計數(shù),并查看它們是在更大的(多數(shù))還是更小的組(少數(shù))?
  • 如果特定組處于少數(shù),它將不嘗試觸發(fā)故障轉(zhuǎn)移,并且將不接

受任何客戶端寫入請求。

讓我們來看看下面的集群:

現(xiàn)在,假設(shè)發(fā)生網(wǎng)絡(luò)分割,如下所示:

在這里,左側(cè)組(節(jié)點集合)處于少數(shù),因此它不會嘗試觸發(fā)故障轉(zhuǎn)移,并將停止接受任何客戶端寫入請求。

右側(cè)組(節(jié)點集合)處于多數(shù),因此它具有觸發(fā)任何主分片故障轉(zhuǎn)移的權(quán)限和能力。

責(zé)任編輯:趙寧寧 來源: 小技術(shù)君
相關(guān)推薦

2013-03-21 11:09:48

網(wǎng)絡(luò)管理高可用性集群系統(tǒng)網(wǎng)絡(luò)虛擬化基礎(chǔ)架構(gòu)

2012-02-13 23:20:18

linux集群高可用

2011-12-02 10:10:34

RedisFailover

2012-07-04 11:21:07

OpenStack

2012-09-04 13:43:31

SQL Server

2013-08-28 10:30:39

vSphere

2009-06-14 17:53:28

ibmdwWebSphere

2012-02-22 09:58:59

虛擬化桌面虛擬化Citrix Xend

2010-11-29 16:22:32

虛擬化高可用性

2013-12-04 09:52:50

hadoop

2025-03-04 08:20:00

2023-11-01 07:55:44

K8sKubernetes

2010-12-31 14:36:15

ExchangeSer

2011-08-25 15:42:49

2024-12-11 08:35:55

2014-08-14 16:38:22

HeartbeatApache集群

2023-12-05 09:31:46

數(shù)據(jù)庫架構(gòu)

2024-08-13 15:42:19

2010-04-19 14:49:56

Oracle高可用性

2011-04-14 13:13:28

SQL serverSQL Mirror
點贊
收藏

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