同是分布式系統,為什麼redis不需要leader,而rocketmq和oceanbase需要?

時間 2021-05-06 08:15:15

1樓:drdr xp

所有的強一致分布式系統都有leader,或者是乙個長期維護的leader 程序,或是短暫存在的某條記錄的leader。

沒有leader的,一定不是乙個強一致系統。因為達成一致本身的含義就是:某個變數的值是在某個時刻被全域性唯一的乙個程序決定的,這個程序在那個時間就是這個變數的leader。

2樓:歐文韜

先簡單地說為啥redis cluster不需要leader,因為它壓根就沒有提供leader這個角色的功能。

首先要看leader做了什麼事兒,那些需要leader的服務大多數leader的功能是用於管理集群,即便是raft/multi-paxos也是協商出了leader以leader資料為準的。(這裡和主備機制區分一下)

再來看為啥redis cluster沒有leader的事兒。最新的redis clsuter有沒有改不清楚。但是Redis cluster剛出來那會兒的幾個大版本,包括3-5。

都是由上層維護集群管理的,設定slot的分布和主備分組都是手動或者由上層另外提供乙個系統。

然後組內主節點如果掛掉直接組內自治就可以了,也是有個映像中是基於gossip的選主機制,不管怎麼選主都選不到組外的節點上去。但是這個是資料層面的,應該不屬於題主的問題的範疇。因為如果從這個層面來說也可以理解為主節點就是leader。

3樓:

因為使用的協議不一樣, redis cluster 使用的是流言協議(gossip)

Life in a Redis Cluster: Meet and Gossip with your neighbors

Redis Cluster Specification - Redis

會將乙個變化以流言的形式進行廣播到整體集群。

分布式系統中Redis等快取系統宕機應不應該影響正常應用系統執行?

大寬寬 首先,Redis的用法分為 快取 和 儲存 兩類。題目中的庫存,分布式鎖等屬於 儲存 這裡說的儲存是指Redis裡存的資料不能丟,不可以從Redis集群之外的地方完全恢復。對於 儲存 沒有 穿透 一說。穿透是針對 快取 這個場景用的。引入快取的原因一般就是後面的資料庫撐不住。如果能撐住就沒有...

Geode 和 redis 兩個分布式記憶體資料庫的對比,優缺點?

莊懷軒 準確的說,Geode不是記憶體資料庫 In Memory DataBase,IMDB 而是有資料庫功能的記憶體資料網格 In Memory Data Grid,IMDG 如果說最基本的優缺點,Redis最大的優勢就是上手快了,可以迅速的搭建起來。但是如果真的比較效能和功能,Redis是完全不...

分布式系統廣泛使用的zookeeper有哪些重要的概念呢?

一朵雲Q QuorumPeer 節點型別,分為 LeaderZookerServer FollowerZookeeperServer ObserverZookeeperServer leader節點對應Leader類物件,以及LearnerHandler接收處理訊息 follower節點對應Lear...