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

時間 2021-06-06 08:21:31

1樓:一朵雲Q

QuorumPeer 節點型別,分為

LeaderZookerServer

FollowerZookeeperServer

ObserverZookeeperServer

leader節點對應Leader類物件,以及LearnerHandler接收處理訊息

follower節點對應Learner類物件

狀態類ServerState,啟動時為looking,根據選舉策略進入leading、following、observing

通過track類跟蹤是否進入選舉,選舉類QuorumVerifier,預設的maj即多數投票,方法名叫containsQuorum

也可配置基於權重

對於投票邏輯,所有引數相同時,最終比較server id

* 選舉策略

* We return true if one of the following three cases hold:

* 1- New epoch is higher

* 2- New epoch is the same as current epoch, but new zxid is higher

* 3- New epoch is the same as current epoch, new zxid is the same

* as current zxid, but server id is higher.

return ((newEpoch > curEpoch)

newEpoch == curEpoch)

amp;& ((newZxid > curZxid)

newZxid == curZxid)

amp;& (newId > curId)))));

通訊連線類CnxManager,接收和傳送訊息,包含

SenderWorker

RecvWorker

選舉演算法類FastLeaderElection,打包和解包訊息,包含

WorkerRecv

WorkerSender

client處理類Processor,是乙個鍊錶結構,前乙個處理完丟給後乙個處理,比如

增加事務頭的類

訊息sync類

ack request類

commit類

等等最後持久化類ZKDatabase,包含

snap:file snap和txn log

DataTree — DataNode:資料節點

watcher:zk的watch功能

分布式資料庫的分布式事務?

NebulaGraph 業務系統往往是通過子系統組合的模式來完成,這些子系統很可能是不同的資料庫,甚至可能是 友商 的,互相直接無法保證事務,還是得業務自身保證。 codingfor 你說的單機事物,我的理解其實是指single threaded excution,而不是指在單台機器上做事物 暗含了...

如何保證分布式系統metadata資料強一致性?

Tony 乙個現在比較好的解決方案是 將meta data存放在control plane,然後data plane通過control plane來統一。對於control plane,有兩種解決方案。第一,用cluster,這時,需要選用支援強一致的系統,比如etcd和ZooKeeper 還有一些...

學習分布式系統需要哪些知識點?

Gala 1 概念 1.1 模型 1.1.1 節點 1.1.2 通訊 1.1.3 儲存 1.1.4 異常 1.2 副本 1.2.1 副本的概念 1.2.2 副本一致性 1.3 衡量分布式系統的指標 1.3.1 效能 1.3.2 可用性 1.3.3 可擴充套件性 1.3.4 一致性 2 分布式系統原理...