rocketmq学习-4.基于dledger技术的broker主从同步

DLedger技术替换broker的CommitLog,由DLedger来管理CommitLog

每一个broker上都有一个DLedger组件

1.DLedger基于Raft协议选举Leader Broker

Raft协议简单来说是:

如果一轮下来选不出Leader的话,就让大家随机休眠.首先苏醒的投票给自己,其他人苏醒之后发现收到选票,就会跟投

2.DLedger基于Raft协议进行多副本同步

数据同步分为两个阶段,一个是uncommited阶段,一个是commited阶段

Leader Broker上的DLedger收到一条数据后,会标记为uncommited状态,然后会通过自己的DledgerServer把这个uncommited数据发送给follower broker的DLedgerServer

然后follower broker的DLedgerServer收到uncommited之后,会返回一个ack给Leader,然后Leader收到了超过半数的follower返回的ack之后,会将这条消息标记为committed状态

可以理解为主从同步中的同步双写

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容