1.
一定要先启动Consumer端,在启动Producer端,如果消息拉取失败的话将会个1s.2s.5s.重新拉取,直到获取成功为止,
工作中如果长时间拉取失败的处理办法,当重试达到规定 的次数后,记录日志操纵数据库
小记:只要Consumer没有返回
return ConsumeConcurrentlyStatus.RECONSUME_LATER;
或
return ConsumeConcurrentlyStatus.CONSUME_SUCCESS;
rocketmq就认为没有到达消费端节点
2. 有两个Consumer端订阅的是同一个Queen和tab,现在直发送一条数据,消息被Consumer1收到了,但是没有做返回处理或者是Consumer1节点宕机了,那么MQ会重试这个消息给Consumer2
3.有一个Producer发送了10条数据,现在MQ为双Master模式,在管控台可以看到BrokerA收到了6条,BrokerB收到了4条。现在我关闭BrokerA节点,启动一个Consumer节点,那么之后得到4条数据,在开启BrokerA节点后收到BrokerA节点上的6条数据
关闭broker命令: sh mqshutdown broker
小记:Consumer消费的方式
广播:每个Consumer都收到一份消息
比如Producer发送了10条数据,那么每一个Consumer都收到10条消息
集群:每个Consumer均分收到消息
小记:同步双写和异步复制的概念
同步双写:有一主一从两个节点,Producer发送数据的时候必须主从节点都写入后返回生效
异步复制:有一主一从两个节点,Producer发送数据的时候只要从节点写入后返回生效
异步复制效率高于同步双写,消息原子性低于同步双写
刷盘方式:是以上截图中,commitlog 和 consumberqueue的关系