DLedger技術替換broker的CommitLog,由DLedger來管理CommitLog
每一個broker上都有一個DLedger組件
1.DLedger基于Raft協(xié)議選舉Leader Broker
Raft協(xié)議簡單來說是:
如果一輪下來選不出Leader的話,就讓大家隨機休眠.首先蘇醒的投票給自己,其他人蘇醒之后發(fā)現(xiàn)收到選票,就會跟投
2.DLedger基于Raft協(xié)議進行多副本同步
數(shù)據(jù)同步分為兩個階段,一個是uncommited階段,一個是commited階段
Leader Broker上的DLedger收到一條數(shù)據(jù)后,會標記為uncommited狀態(tài),然后會通過自己的DledgerServer把這個uncommited數(shù)據(jù)發(fā)送給follower broker的DLedgerServer

然后follower broker的DLedgerServer收到uncommited之后,會返回一個ack給Leader,然后Leader收到了超過半數(shù)的follower返回的ack之后,會將這條消息標記為committed狀態(tài)
可以理解為主從同步中的同步雙寫