RocketMQ底层原理
2021-02-22 10:23:27 30 举报
AI智能生成
RocketMQ底层原理
作者其他创作
大纲/内容
Producer底层原理
MessageQueue是什么
MessageQueue如何分散在Broker上
写入消息时如何选择MessageQueue
Broker故障时的容错处理机制
Broker数据存储机制
为什么Broker数据存储机制是最重要的
CommitLog数据存储机制
ConsumerQueue消息Offset存储机制
CommitLog写入性能优化
文件顺序追加写入
基于os cache写入
os后台线程异步刷盘
异步刷盘策略
高吞吐+丢失数据
同步刷盘策略
低吞吐+不丢失数据
Broker高可用主从架构
基于Dledger管理CommitLog
一组Broker启动时选举Leader
Dledger基于Raft协议选举
Raft协议的随机休眠机制
Leader可以写入,follower不能写入
leader写入之后进行数据同步
uncommited消息同步给follower
过半follower返回ack即可返回
Dledger在本地执行commit
Dledger将commit消息发送给follower
Leader崩溃之后
剩余follower重新选举leader
Leader自动热切换
Leader自动完成数据恢复
新leader继续执行写入
Consumer底层原理
一条消息如何分配给不同的消费组
消费组内部如何分配消息:集群模式 vs 广播模式
MessageQueue如何分配给多台机器消费
如何拉取消息:Pull模式 vs Push 模式
Broker如何读取消息返回给消费者
基于ConsumerQueue读取消息offset
从CommitLog中读取消息数据
消费者处理消息
回调我们注册的监听函数来处理
提交消息处理进度
Broker存储ConsumerQueue Offset
消费组内的重平衡
消费组内机器宕机
消费组进行机器的扩容
Broker读写分离架构原理
ConsumerQueue基于os cache实现读取优化
CommitLog基于os cache + 磁盘一起读取
CommitLog基于os cache实现写入优化
CommitLog什么时候从os cache读取?什么时候从磁盘里读
Master Broker什么时候指示从Slave Broker读取
0 条评论
下一页