开发者社区 > 云原生 > 消息队列 > 正文

RocketMQ这边是3台服务器,分别部署了3组broker主从,有谁知道啥情况吗?

RocketMQ这边是3台服务器,分别部署了3组broker主从,3个nameserver,用了controller和proxy,搭建的mq集群。生产者、消费者客户端也有3个。一开始正常。
我停了两台服务器上的所有mq的服务nameserver,broker,proxy这些,就剩下一组mq服务。就出现生产消费不成功的情况了。而且控制台消费者里面,对应消费组里面消费者数量也变为0了
有谁知道啥情况吗?

展开
收起
cuicuicuic 2023-12-17 08:27:56 46 0
3 条回答
写回答
取消 提交回答
  • 你这个比较偏描述,建议还是看下客户端、服务端的日志,提供下异常;比较容易让大家有个判断的思路 看起来是变成一台之后,没有能选出leader 没有leader,broker就没有注册上ns,导致你去ns拿topic出错了 ,此回答整理自钉群“群2-Apache RocketMQ 中国开发者钉钉群”

    2023-12-18 07:45:21
    赞同 展开评论 打赏
  • 面对过去,不要迷离;面对未来,不必彷徨;活在今天,你只要把自己完全展示给别人看。

    当您停止了两台服务器上的所有mq服务,包括nameserver, broker和proxy,只剩下一组mq服务,生产消费不成功的问题可能出现的原因有以下几点:

    1. 确保消费者的消费者组名(consumer group name)正确配置。RocketMQ使用消费者组来进行消息的负载均衡和容错处理。如果消费者组名配置错误,会导致消费者无法正确接收到消息。

    2. 确认消费者的订阅主题和标签(tag)正确。如果订阅的主题或标签不正确,消费者将无法消费到相关的消息。

    3. 检查您的消费者是否在线。消费者必须在线才能接收消息。如果消费者没有在线,那么它们将无法消费任何消息。

    4. 确认当前消费者是否已经启动并且运行正常。如果消费者没有正确启动或者崩溃,那么他们将无法消费消息。

    2023-12-17 14:59:20
    赞同 展开评论 打赏
  • 根据您的描述,当您停止了两台服务器上的所有RocketMQ服务(NameServer、Broker和Proxy),只留下一组MQ服务时,出现了生产者和消费者无法成功工作的情况,并且控制台中对应消费组的消费者数量变为0。这可能是由于以下几个原因导致的:

    1. NameServer不可用:RocketMQ的NameServer用于管理整个集群的元数据信息和路由规则。当您停止两台服务器上的NameServer服务时,导致剩余一组MQ服务无法访问正确的元数据和路由信息,从而影响了消息的发送和消费。请确保至少有一个可用的NameServer服务在运行。

    2. Broker分区不均衡:在RocketMQ集群中,每个主题(Topic)的分区(Partition)会被分配到多个Broker节点上。当部分Broker节点停止服务时,可能会导致分区在集群中的分布不均衡,进而影响消息的发送和消费。请检查Broker的分区分布情况,并确保分布均衡。

    3. 控制台消费者数量变为0:如果控制台中对应消费组的消费者数量变为0,可能是由于消费者客户端停止或无法连接到RocketMQ集群所在的服务器。请确保消费者客户端正常运行,并且能够连接到可用的MQ服务。

    针对以上情况,建议您执行以下操作:

    • 启动停止的两台服务器上的RocketMQ服务(NameServer、Broker和Proxy),确保所有的MQ服务都正常运行。

    • 检查每个MQ服务的日志文件,查看是否有任何错误或异常信息,以帮助定位和解决问题。

    • 确认集群中至少有一个可用的NameServer在运行,并且其他组件也处于正常状态。

    • 检查消费者客户端的配置,确保它们能够正确连接到RocketMQ集群,并且消费者组、主题等配置是正确的。

    2023-12-17 14:42:35
    赞同 展开评论 打赏

多个子产品线联合打造金融级高可用消息服务以及对物联网的原生支持,覆盖多行业。

相关产品

  • 云消息队列 MQ
  • 热门讨论

    热门文章

    相关电子书

    更多
    RocketMQ Client-GO 介绍 立即下载
    RocketMQ Prometheus Exporter 打造定制化 DevOps 平台 立即下载
    基于 RocketMQ Prometheus Exporter 打造定制化 DevOps 平台 立即下载