關於kafka的一致性的疑問?

時間 2021-06-03 00:03:48

1樓:胡明

可以看一下這個

2樓:huxihx

說說我的淺見~

kafka的old leader由於gc等原因soft fail的時候選舉了新的leader,那麼old leader回來時會發生什麼情況?

如果broker因為某些原因(像你所說的long gc)導致與Zk的會話斷開,那麼依託於Zk的watch機制,controller通常會立刻感知到,並為該broker上的所有分割槽執行相應的leader選舉,故old leader所在broker重啟回來後僅僅作為乙個普通的follower加入集群,整個集群並不會出錯。

可能要考慮到網路分割的情況,一部分程序和old leader分在一起

Kafka最最開始的時候(當然Confluent公司的確推出了跨資料中心同步的解決方案)還是定位自己是乙個單資料中心內的分布式服務,故根據CAP理論,它更加看重的是高可用性和一致性。當發生network partition的時候,Kafka集群的確可能出現不可用的情形。使用者可以通過設定unclean.

leader.election.enable=false以及調整min.

insync.replicas/acks來降低對clients端的影響。

雖然有leader epoch,但是並不是全部的請求都用epoch做了fencing吧?並且有可能有些請求是fencing之前就發出了呢?

我假定你指的leader epoch是KIP 101引入的leader epoch。 KIP 101引入leader epoch的確是為了防止因單一使用高水位機制而導致的副本間資料丟失和資料離散等不一致情況。與之相關聯的請求型別有FETCH和LeaderAndIsr請求,不確定你指的其他請求還有什麼?

另外如果這些請求的版本與leader epoch機制不相容,那麼Kafka會預設啟用高水位機制。

kafka的一致性為啥不替換成raft?

Lancer 在2.8中可以切換到KRaft模式,這裡Quorum controller使用的KRaft協議,詳情可以看下面的鏈結。 Augustus Fengh 記得 RocketMQ 底層用了 DLedger,就是用 Raft 同步日誌 只是沒有 commit 到狀態機而已 所以把 Raft 用...

flink中一致性檢查點,這個一致性怎麼理解,是什麼和什麼一致,跟分布式中一致性演算法一樣嗎?

歡歌 從物理意義上,checkpoint 分布式快照是乙個有意義的系統狀態,但不一定對應某個時刻的狀態 沒法讓所有節點在同乙個時刻拍照 一致性的含義是 不違背事件間固有的因果關係,即如果系統裡面有兩個事件 e1 和 e2,且 e2 依賴於 e1,那麼快照不能只包含了 e2,但是卻沒有包含 e1。舉個...

如何評價一致性演算法 PacificA ?

辛塞凱諾卡密 有一點我覺比較爽,省去了集群自選舉的邏輯,把這件事交給Nameserver做,直接判斷PreparedList的完整性以及First Win即可。 laliliu 個人覺得PacificA沒有Paxos,Raft流行,可能跟msra沒有強力推廣也有關,另外,感覺PacificA有不少v...