diff --git a/controller/src/main/java/org/apache/rocketmq/controller/Controller.java b/controller/src/main/java/org/apache/rocketmq/controller/Controller.java index cbd11f5915..3b28d24d9b 100644 --- a/controller/src/main/java/org/apache/rocketmq/controller/Controller.java +++ b/controller/src/main/java/org/apache/rocketmq/controller/Controller.java @@ -58,7 +58,7 @@ public interface Controller { boolean isLeaderState(); /** - * Alter ISR of broker replicas. + * Alter SyncStateSet of broker replicas. * * @param request AlterSyncStateSetRequestHeader * @return RemotingCommand(AlterSyncStateSetResponseHeader) @@ -90,11 +90,6 @@ public interface Controller { */ CompletableFuture getReplicaInfo(final GetReplicaInfoRequestHeader request); - /** - * Get inSyncStateData for target brokers, this api is used for admin tools. - */ - CompletableFuture getSyncStateData(final List brokerNames); - /** * Get Metadata of controller * @@ -102,6 +97,11 @@ public interface Controller { */ RemotingCommand getControllerMetadata(); + /** + * Get inSyncStateData for target brokers, this api is used for admin tools. + */ + CompletableFuture getSyncStateData(final List brokerNames); + /** * Get the remotingServer used by the controller, the upper layer will reuse this remotingServer. */ diff --git a/controller/src/main/java/org/apache/rocketmq/controller/impl/manager/ReplicasInfoManager.java b/controller/src/main/java/org/apache/rocketmq/controller/impl/manager/ReplicasInfoManager.java index ba350e5a3f..13fc60a8ad 100644 --- a/controller/src/main/java/org/apache/rocketmq/controller/impl/manager/ReplicasInfoManager.java +++ b/controller/src/main/java/org/apache/rocketmq/controller/impl/manager/ReplicasInfoManager.java @@ -56,12 +56,12 @@ import org.apache.rocketmq.logging.InternalLoggerFactory; */ public class ReplicasInfoManager { private static final InternalLogger log = InternalLoggerFactory.getLogger(LoggerName.CONTROLLER_LOGGER_NAME); - private final boolean enableElectUncleanMaster; + private final ControllerConfig controllerConfig; private final Map replicaInfoTable; private final Map syncStateSetInfoTable; public ReplicasInfoManager(final ControllerConfig config) { - this.enableElectUncleanMaster = config.isEnableElectUncleanMaster(); + this.controllerConfig = config; this.replicaInfoTable = new HashMap<>(); this.syncStateSetInfoTable = new HashMap<>(); } @@ -176,7 +176,7 @@ public class ReplicasInfoManager { } // Try elect a master in lagging replicas if enableElectUncleanMaster = true - if (enableElectUncleanMaster) { + if (controllerConfig.isEnableElectUncleanMaster()) { boolean electSuccess = tryElectMaster(result, brokerName, brokerInfo.getAllBroker(), (candidate) -> !candidate.equals(syncStateInfo.getMasterAddress()) && brokerAlivePredicate.test(brokerInfo.getClusterName(), candidate)); if (electSuccess) { @@ -267,7 +267,7 @@ public class ReplicasInfoManager { // If the master is not alive, we should elect a new master: // Case1: This replicas was in sync state set list // Case2: The option {EnableElectUncleanMaster} is true - canBeElectedAsMaster = syncStateInfo.getSyncStateSet().contains(brokerAddress) || this.enableElectUncleanMaster; + canBeElectedAsMaster = syncStateInfo.getSyncStateSet().contains(brokerAddress) || this.controllerConfig.isEnableElectUncleanMaster(); } } else { // If the broker's metadata does not exist in the state machine, the replicas can be elected as master directly. diff --git a/controller/src/main/java/org/apache/rocketmq/controller/impl/manager/SyncStateInfo.java b/controller/src/main/java/org/apache/rocketmq/controller/impl/manager/SyncStateInfo.java index c352e9faa2..346d4ccddc 100644 --- a/controller/src/main/java/org/apache/rocketmq/controller/impl/manager/SyncStateInfo.java +++ b/controller/src/main/java/org/apache/rocketmq/controller/impl/manager/SyncStateInfo.java @@ -20,7 +20,7 @@ import java.util.HashSet; import java.util.Set; /** - * In sync replicas info, manages the master and syncStateSet of a broker. + * Manages the syncStateSet of broker replicas. */ public class SyncStateInfo { private final String clusterName;