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

rocketmq5.0版本,如果部署对了多个Controller,可能造成选举出来的BrokerRo

rocketmq5.0版本,如果部署对了多个Controller,可能造成选举出来的BrokerRoler都是SLAVE?

展开
收起
真的很搞笑 2023-06-06 13:35:48 139 0
3 条回答
写回答
取消 提交回答
  • 这个是必现的问题 感觉还是源码选举地方brokerRoler设置有点逻辑问题,此回答整理自钉群“群2-Apache RocketMQ 中国开发者钉钉群”

    2023-07-19 15:52:24
    赞同 展开评论 打赏
  • 问题1:在RocketMQ 5.0版本中,如果部署了多个Controller,可能会导致选举出来的BrokerRole都是SLAVE。这是因为在选举过程中,Controller会根据Broker的状态、心跳等信息来进行判断,如果多个Controller都对同一个Broker进行了判断,就可能会出现选举混乱的情况。

    解决方案:可以通过在Broker的配置文件中设置brokerIP1、brokerIP2等参数来避免这种情况的发生,同时也可以通过调整Controller的心跳时间、重试次数等参数来优化选举过程。

    问题2:在dashboard上显示的是master,但是点击查看配置却是BrokerRole=SLAVE,可能是由于Broker的状态发生了变化,导致dashboard没有及时更新。

    解决方案:可以尝试刷新dashboard页面,或者在Broker的配置文件中手动设置BrokerRole为MASTER,然后重启Broker。

    问题3:dashboard集群没有配置按钮,可能是由于权限问题或者dashboard版本不兼容等原因导致的。

    解决方案:可以尝试升级dashboard的版本,或者检查dashboard的配置文件、权限等是否正确设置。

    2023-06-11 15:49:11
    赞同 展开评论 打赏
  • 公众号:网络技术联盟站,InfoQ签约作者,阿里云社区签约作者,华为云 云享专家,BOSS直聘 创作王者,腾讯课堂创作领航员,博客+论坛:https://www.wljslmz.cn,工程师导航:https://www.wljslmz.com

    问题1:

    在 RocketMQ 5.0 版本中,如果部署了多个 Controller 节点且没有正确配置相关参数,可能会导致 Controller 选举出的 BrokerRole 都是 SLAVE。这是因为 Controller 在进行 Master 选举时,默认会将所有 Broker 都当作 SLAVE 进行处理,因为在 RocketMQ 中,每个 Broker 在启动时都默认是 SLAVE,只有选举出的 Master 才会变成 MASTER。

    为了解决这个问题,可以在启动 Controller 时添加以下参数进行配置:

    -Drocketmq.broker.longPollingTimeout=6000
    -Drocketmq.broker.slaveReadEnable=false
    

    其中,rocketmq.broker.slaveReadEnable 表示是否允许从 SLAVE 节点读取消息,默认为 true,需要设置为 false 才能避免 Controller 将所有 Broker 都当作 SLAVE 进行处理。

    问题2:

    在 Dashboard 中,如果显示的是 Broker 是 MASTER,但是在查看配置时显示是 BrokerRole 是 SLAVE,可能存在 Broker 的状态还没有同步至 Dashboard 上,也可能是因为在 Broker 选举时出现了异常。

    若 Broker 的状态还没有同步至 Dashboard 上,可以尝试等待一段时间后再次查看,或者手动刷新 Dashboard 页面。如果问题依然存在,可能需要修改相关配置并重启 Broker,或者检查 Broker 选举时是否出现异常情况。

    问题3:

    如果 Dashboard 集群没有配置按钮,可能是因为当前用户没有相应的权限,需要使用具有管理员权限的账号登录 dashboard 进行配置。如果已经使用管理员账号登录 Dashboard,但仍未看到配置按钮,可能是因为当前版本的 Dashboard 不支持在线配置,需要通过修改配置文件等方式进行配置。

    2023-06-06 17:03:39
    赞同 展开评论 打赏

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

相关产品

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

    热门文章

    相关电子书

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