RocketMQ根据官网来配置controller的时候,会出现无法选举master的问题吗?配置了两个broker,broker配置文件里面brokerId和brokerRole都没有指定
在RocketMQ中,如果配置了两个broker,broker配置文件里面brokerId和brokerRole都没有指定,那么这两个Broker节点默认都会注册到NameServer上,并且它们都会被认为是Master。因此,在这种没有指定角色的情况下,每个Broker都有可能被选为Master,这可能导致在主从架构下Slave不能自动切换为Master的问题。
为了解决这个问题,RocketMQ从4.5版本开始提供了DLedger模式,使用Raft算法来支持自动故障恢复,这样如果Master节点出现故障,可以自动从Slave节点中选举出新的Master进行切换。另外,如果你希望即使在数据落后的情况下也能从非同步状态集合中选举出Master,你可以设置参数enableElectUncleanMaster为true。但是需要注意,这样做可能会导致选取的数据落后的副本作为Master而丢失消息。
https://github.com/apache/rocketmq/discussions/6354
看看这个 ,此回答整理自钉群“群2-Apache RocketMQ 中国开发者钉钉群”
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。
涵盖 RocketMQ、Kafka、RabbitMQ、MQTT、轻量消息队列(原MNS) 的消息队列产品体系,全系产品 Serverless 化。RocketMQ 一站式学习:https://rocketmq.io/