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 条评论
 下一页