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

我现在有一个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个(来了个新的) 更加选不出来

展开
收起
cuicuicuic 2023-06-11 22:57:21 166 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
    赞同 展开评论 打赏

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

相关产品

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

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