RocketMQ底层原理
2020-06-18 17:03:59 0 举报
AI智能生成
RocketMQ底层原理
作者其他创作
大纲/内容
Consumer底层原理
一条消息如何分配给不同的消费组
消费组内部如何分配消息:集群模式:广播模式
MessageQueue如何分配给多台机器消费
如何拉取消息:push模式和pull模式
broker如何读取消息返回给消费者
根据偏移量从commitLog中读取消息数据
消费者处理消息
回调消费者服务器注册的监听函数来处理
提交消息处理进度
broker存储消息消费的consumerOffset
消费组内的重平衡
消费组内机器宕机
消费组进行机器的扩容
Broker读写分离架构原理
CommitLog基于os cache实现写入优化
ConsumeQueue基于os cache实现读取优化
CommitLog基于os cache+磁盘一起读取
CommitLog什么时候从os cache里读?什么时候从磁盘中读
Master Broker什么时候指示消费者从slave Broker读
RocketMQ底层原理
Producer底层原理
MessageQueue是什么
MessageQueue如何分散在Broker上
Messagequeue均匀的分散到broker集群
写入消息时如何选择MessageQueue
Broker故障时的容错处理机制
Broker数据存储机制
为什么Broker数据存储机制是最重要的
CommitLog数据存储机制
ConsumeQueue消息offset存储机制
CommitLog写入性能优化
文件顺序追加写入
基于os cache写入
os后台线程异步刷盘
异步刷盘策略:高吞吐+丢失数据
同步刷盘策略:低吞吐+不丢失数据
Broker高可用主从架构
基于Dledger管理CommitLog
一组Broker启动时选举Leader
Dledger基于Raft算法协议进行选举
Raft协议的随机休眠机制
Leader写入之后进行数据同步
uncommitted消息同步给follower
过半follower返回ack即可返回
Dledger在本地执行commit
Dledger将commit消息发送给follower
Leader崩溃之后
剩余Follower重新选举Leader
Leader自动热切换
Leader自动完成数据恢复
新的leader继续执行写入
0 条评论
回复 删除
下一页