• 深入理解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的源码!

  • 相关阅读:
    World Wide Web Publishing Service 服务成功发送一个 停止 控件
    绵竹网站整理
    利用AirPlayer空中播放PC服务器视频、音乐、图片
    ic管理系统
    IIS 6.0下访问aspx文件提示无法找到该页
    GHOST XP SP3无法安装IIS的解决办法
    html 整个页面变灰
    爱普生LQ630K 730K如何换色带
    sql 格式 00123
    serveu 错误1069 由于登陆失败而无法启动服务
  • 原文地址:https://www.cnblogs.com/guoyu1/p/11677766.html
Copyright © 2020-2023  润新知