rocketmq源码底层原理分析
2021-02-26 13:49:59 0 举报
rocketmq producuer底层源码流程分析
作者其他创作
大纲/内容
selectOneMessageQueue
DefaultMQProducerImpl
Message QueueTopic C
执行发送成功后的Hook操作
合法
NameServer
RocketMQ操作
Broker
获取当前Topic元数据
开启for循环。次数为MessageQueue的数量
Producer
messageQueueList
消费者
Message QueueTopic A
queue
生产者
生产消息
sendMessageSync
Message QueueTopic B
Netty服务器
不是,或者循环结束
检测不通过
lastBrokerName是否存在(如果是第一次,则肯定不存在)
核心的计算逻辑
消息
是
消费消息
计算index(取模运算)19 % 3 = 1
Message Queue存储
成功找到元数据
开始计算
invokeSync
commit log
磁盘
是否和上次选择的是同一个Broker
选择消息具体发送到哪个MessageQueue
RocketMQ
返回ThreadLocal中存的值+1,如果为空则随机生成一个假设为19
正常情况下的Message Queue选择逻辑
检查Topic消息体是否合法
结束
send
invokeSyncImpl
End
不存在
ThreadLocalsendWhichQueue
tryToFindTopicPublishInfo
queue的数量假设为3
获取MQ集群信息
存在
0 条评论
下一页