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

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

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

展开
收起
真的很搞笑 2023-12-17 08:27:56 100 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
    赞同 展开评论 打赏

涵盖 RocketMQ、Kafka、RabbitMQ、MQTT、轻量消息队列(原MNS) 的消息队列产品体系,全系产品 Serverless 化。RocketMQ 一站式学习:https://rocketmq.io/

相关产品

  • 云消息队列 MQ
  • 相关电子书

    更多
    如何运维千台以上游戏云服务器 立即下载
    网站/服务器取证 实践与挑战 立即下载
    ECS快储存加密技术 立即下载