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 中国开发者钉钉群”