zoukankan      html  css  js  c++  java
  • 深入理解RocketMQ的消费者组、队列、Broker,Topic

    1、遇到的问题:上测试环境,上次描述的鸟问题又出现了,就是生产者发3条数据,我这边只能收到1条数据。

    2、问题解决:

      (1)去控制台看我的消费者启动情况,貌似没什么问题

      (2)去测试服务器里看日志信息:只有入库的那条是真的接收到了,其余压根就没有接收到,排除入库过程的代码问题。到此,问题只锁定在我的consumer根本没有接收到丢失的那两条消息。

       (3)仔细思考一下,发现了问题的根源,看图一的控制台信息,可以发现,生产者默认给我分配了四个队列,但是我的消费者只用了两个队列,这就是和那天的问题一样啊,但是看消费终端的id只有我的服务器在我的消费者组里,没有其他的服务器啊。而且我的topic下面的四个队列中,只有一种类型的消费者,为什么另两个队列硬是分配不到呢。

    3、问题答案:

             仔细看了我的内网包,发现了一个问题,我自己的程序中包中,有人在跟我使用同一个消费者组,虽然消费的topic不同,而且那货的topic一直在服务器里报错。我将我的消费者组名改掉了,问题消失了。

     

     ********但是,不由得发问:

    1、为什么同一个group,topic不同,它还要占用的我消息队列?

    2、同一个消费者组下,队列是怎么分配的?

    3、broker和队列之间有什么联系?

    4、同一group,不同的消费者他的broker是怎么分配的?

      要解决上诉问题,必须要深入理解RocketMQ的执行流程,查看MQ的源码!

  • 相关阅读:
    ios tableviewcontroller
    jsp第十次作业
    jsp第九次作业
    jsp第八次作业
    jsp第七次作业
    jsp第六次作业
    jsp第五次作业
    jsp第四周作业-2
    jsp第四周作业-1
    软件测试第四周作业
  • 原文地址:https://www.cnblogs.com/guoyu1/p/11677766.html
Copyright © 2011-2022 走看看