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

我现在有一个rocketmq的集群(broker是1主2从), broker主节点所在的机器宕机了?

我现在有一个rocketmq的集群(broker是1主2从), broker主节点所在的机器宕机了, 这个时候能否从2个从节点选出1个主来?实践过了,1主2从,mater宕机,2个从中是选不出主的,rocketmq5.0版本 主宕机了 里面是有三个ip(包含旧的broker的pod ip) ,首先是选不出来 然后这个时候主节点的pod重启后 ip会变 就进来4个(来了个新的) 更加选不出来

展开
收起
真的很搞笑 2023-06-11 22:57:21 331 0
2 条回答
写回答
取消 提交回答
  • 随心分享,欢迎友善交流讨论:)

    在 RocketMQ 中,如果 Broker 主节点所在的机器宕机了,那么只有 Broker 从节点可以自动切换成主节点。在一台机器上运行多个 Broker 实例时,每个 Broker 实例的角色(主节点或从节点)是在 Broker 启动时决定的,一旦 Broker 启动后角色不会再改变,因此,从节点无法主动切换成主节点。

    在您的情况下,如果 Broker 主节点所在的机器宕机了,那么只有 Broker 从节点可以继续工作,不能自动切换成主节点。如果想要从节点切换成主节点,需要手动进行一些配置和操作。

    具体做法如下:

    手动修改 Broker 配置 在 Broker 从节点上,手动修改 Broker 配置文件(broker.conf 或 broker.properties),将 brokerRole 参数设置为 SYNC_MASTER,并设置其他相关参数,例如 namesrvAddr、brokerName 等。

    手动启动 Broker 从节点 在 Broker 从节点上,手动启动 Broker 实例,以便将其切换成主节点。此时,该节点将承担起原来主节点的任务,并将消息发送给其他 Broker 节点。

    需要注意的是,手动切换 Broker 节点的角色需要谨慎操作,需要确保在切换过程中不会丢失消息和数据,并且需要手动进行一些配置和操作,才能保证 Broker 能够正常工作。建议在进行任何操作之前,先备份相关数据和配置文件,并了解相关操作的风险和影响。

    2023-06-30 17:09:39
    赞同 展开评论 打赏
  • controller模式吗,这个取决于你的配置 可以看一下相关部署文档 主节点宕机优先从syncstate set 中选一个从节点 如果没有别的从节点就选不出来 或者你开启forceElect 这时候可以从非sync state set中的仍活跃的从节点选一个出来当主 但是不推荐 因为会丢数据,可以的。。你先看看getSyncStateSet。。里面有几个broker 回答2:,此回答整理自钉群“群2-Apache RocketMQ 中国开发者钉钉群”

    2023-06-11 23:01:06
    赞同 展开评论 打赏

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

相关产品

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

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