草庐IT

rocketmq-console

全部标签

RocketMQ消息发送流程

大家好,我是Leo。今天聊一下RocketMQ消息发送,重试机制,故障延迟机制,获取路由机制,消息队列的选择消息发送关系图首先放一下BrokerCluster,Broker,Topic,Queue的关系图。因为下文主要会沿着这四块进行梳理发送的三种方式消息发送的三种方式同步:发送者向MQ发送一条消息后,一直等待服务器返回成功才继续下一个。异步:发送者向MQ发送一条消息后,通过回调函数调用消息发布函数继续发送,主线程立即返回。单向:发送者向MQ发送一条消息后,直接返回,不等待消息服务器的结果,也不注册函数,简单来说,就是只管发。其他啥也不管。源码packageorg.apache.rocketm

关于 RocketMQ ClientID 相同引发的消息堆积的问题

首先,造成这个问题的BUGRocketMQ官方已经在3月16号的这个提交中修复了,这里只是探讨一下在修复之前造成问题的具体细节,更多的上下文可以参考我之前写的《RocketMQConsumer启动时都干了些啥?》,这篇文章讲解了RocketMQ的Consumer启动之后都做了哪些操作,对理解本次要讲解的BUG有一定的帮助。其中讲到了:重复消费自不必说,你ClientID都相同了。本篇着重聊聊为什么会消息堆积。文章中讲到,初始化Consumer时,会初始化Rebalance的策略。你可以大致将Rebalance策略理解为如何将一个Topic下的m个MessageQueue分配给一个Consume

关于 RocketMQ ClientID 相同引发的消息堆积的问题

首先,造成这个问题的BUGRocketMQ官方已经在3月16号的这个提交中修复了,这里只是探讨一下在修复之前造成问题的具体细节,更多的上下文可以参考我之前写的《RocketMQConsumer启动时都干了些啥?》,这篇文章讲解了RocketMQ的Consumer启动之后都做了哪些操作,对理解本次要讲解的BUG有一定的帮助。其中讲到了:重复消费自不必说,你ClientID都相同了。本篇着重聊聊为什么会消息堆积。文章中讲到,初始化Consumer时,会初始化Rebalance的策略。你可以大致将Rebalance策略理解为如何将一个Topic下的m个MessageQueue分配给一个Consume