This is an automated email from the ASF dual-hosted git repository. duhengforever pushed a commit to branch develop in repository https://gitbox.apache.org/repos/asf/rocketmq.git
commit efbc4a1fccd2e79b339ee2e6da7695a03eb31139 Merge: 1905756db 86568e2d6 Author: Heng Du <[email protected]> AuthorDate: Thu Jul 21 09:23:27 2022 +0800 Merge pull request #4484 from apache/5.0.0-beta-dledger-controller [RIP-44] Support DLedger Controller .../apache/rocketmq/broker/BrokerController.java | 126 ++-- .../org/apache/rocketmq/broker/BrokerStartup.java | 28 +- .../broker/controller/ReplicasManager.java | 447 +++++++++++++ .../apache/rocketmq/broker/out/BrokerOuterAPI.java | 145 ++++- .../broker/processor/AdminBrokerProcessor.java | 68 +- .../rocketmq/client/impl/MQClientAPIImpl.java | 52 ++ .../org/apache/rocketmq/common/BrokerAddrInfo.java | 78 +++ .../org/apache/rocketmq/common/BrokerConfig.java | 63 +- .../apache/rocketmq/common/ControllerConfig.java | 178 ++++++ .../org/apache/rocketmq/common/EpochEntry.java | 91 +++ .../java/org/apache/rocketmq/common/MixAll.java | 1 + .../rocketmq/common/constant/LoggerName.java | 1 + .../rocketmq/common/namesrv/NamesrvConfig.java | 2 +- .../rocketmq/common/protocol/RequestCode.java | 19 + .../rocketmq/common/protocol/ResponseCode.java | 11 + .../common/protocol/body/EpochEntryCache.java | 87 +++ .../common/protocol/body/InSyncStateData.java | 124 ++++ .../common/protocol/body/SyncStateSet.java | 55 ++ .../NotifyBrokerRoleChangedRequestHeader.java | 83 +++ .../controller/AlterSyncStateSetRequestHeader.java | 71 +++ .../AlterSyncStateSetResponseHeader.java | 45 ++ .../controller/ElectMasterRequestHeader.java | 50 ++ .../controller/ElectMasterResponseHeader.java | 76 +++ .../controller/GetMetaDataResponseHeader.java | 93 +++ .../controller/GetReplicaInfoRequestHeader.java | 64 ++ .../controller/GetReplicaInfoResponseHeader.java | 66 ++ .../RegisterBrokerToControllerRequestHeader.java | 83 +++ .../RegisterBrokerToControllerResponseHeader.java | 76 +++ .../rocketmq/common/utils/CheckpointFile.java | 155 +++++ .../rocketmq/common/utils/FastJsonSerializer.java | 62 ++ .../apache/rocketmq/common/utils/Serializer.java | 35 + .../rocketmq/common/utils/CheckpointFileTest.java | 97 +++ .../container/BrokerContainerProcessor.java | 30 +- .../rocketmq/container/BrokerContainerStartup.java | 28 +- .../rocketmq/container/InnerBrokerController.java | 19 +- {namesrv => controller}/pom.xml | 54 +- .../controller/BrokerHeartbeatManager.java | 70 ++ .../controller/BrokerHousekeepingService.java | 51 ++ .../org/apache/rocketmq/controller/Controller.java | 109 ++++ .../rocketmq/controller/ControllerManager.java | 220 +++++++ .../rocketmq/controller/ControllerStartup.java | 60 +- .../controller/impl/DLedgerController.java | 455 +++++++++++++ .../impl/DLedgerControllerStateMachine.java | 75 +++ .../impl/DefaultBrokerHeartbeatManager.java | 188 ++++++ .../impl/event/AlterSyncStateSetEvent.java | 55 ++ .../controller/impl/event/ApplyBrokerIdEvent.java | 58 ++ .../controller/impl/event/ControllerResult.java | 87 +++ .../controller/impl/event/ElectMasterEvent.java | 74 +++ .../controller/impl/event/EventMessage.java | 28 + .../controller/impl/event/EventSerializer.java | 77 +++ .../rocketmq/controller/impl/event/EventType.java | 57 ++ .../controller/impl/manager/BrokerInfo.java | 75 +++ .../impl/manager/ReplicasInfoManager.java | 421 ++++++++++++ .../controller/impl/manager/SyncStateInfo.java | 82 +++ .../processor/ControllerRequestProcessor.java | 143 +++++ .../impl/controller/ControllerManagerTest.java | 196 ++++++ .../controller/impl/DLedgerControllerTest.java | 280 ++++++++ .../impl/DefaultBrokerHeartbeatManagerTest.java | 52 ++ .../impl/manager/ReplicasInfoManagerTest.java | 141 ++++ controller/src/test/resources/logback-test.xml | 33 + distribution/bin/controller/fast-try.sh | 101 +++ distribution/bin/mqcontroller | 45 ++ .../bin/{mqshutdown.cmd => mqcontroller.cmd} | 20 +- distribution/bin/mqshutdown | 16 +- distribution/bin/mqshutdown.cmd | 8 +- .../conf/controller/quick-start/broker-n0.conf | 30 + .../conf/controller/quick-start/broker-n1.conf | 30 + .../conf/controller/quick-start/namesrv.conf | 21 + distribution/conf/logback_controller.xml | 94 +++ docs/cn/controller/deploy.md | 93 +++ docs/cn/controller/design.md | 201 ++++++ docs/cn/controller/quick_start.md | 80 +++ docs/cn/image/controller/controller_design_1.png | Bin 0 -> 427708 bytes .../image/controller/quick-start/changemaster.png | Bin 0 -> 13598 bytes .../cn/image/controller/quick-start/controller.png | Bin 0 -> 315128 bytes docs/cn/image/controller/quick-start/epoch.png | Bin 0 -> 14409 bytes .../image/controller/quick-start/syncstateset.png | Bin 0 -> 13030 bytes namesrv/pom.xml | 4 + .../apache/rocketmq/namesrv/NamesrvStartup.java | 97 ++- .../namesrv/routeinfo/RouteInfoManager.java | 65 +- pom.xml | 11 + .../remoting/netty/NettyRemotingClient.java | 2 +- .../java/org/apache/rocketmq/store/CommitLog.java | 45 +- .../apache/rocketmq/store/DefaultMessageStore.java | 49 +- .../org/apache/rocketmq/store/MessageStore.java | 41 +- .../rocketmq/store/config/MessageStoreConfig.java | 65 +- .../apache/rocketmq/store/ha/DefaultHAService.java | 62 +- .../rocketmq/store/ha/GroupTransferService.java | 48 +- .../org/apache/rocketmq/store/ha/HAService.java | 28 +- .../store/ha/autoswitch/AutoSwitchHAClient.java | 526 +++++++++++++++ .../ha/autoswitch/AutoSwitchHAConnection.java | 708 +++++++++++++++++++++ .../store/ha/autoswitch/AutoSwitchHAService.java | 407 ++++++++++++ .../store/ha/autoswitch/EpochFileCache.java | 327 ++++++++++ .../rocketmq/store/ha/io/AbstractHAReader.java | 80 +++ .../apache/rocketmq/store/ha/io/HAReadHook.java | 22 + .../apache/rocketmq/store/ha/io/HAWriteHook.java | 22 + .../org/apache/rocketmq/store/ha/io/HAWriter.java | 61 ++ .../org/apache/rocketmq/store/ha/HAServerTest.java | 21 +- .../store/ha/autoswitch/AutoSwitchHATest.java | 505 +++++++++++++++ .../store/ha/autoswitch/EpochFileCacheTest.java | 149 +++++ .../test/autoswitchrole/AutoSwitchRoleBase.java | 178 ++++++ .../AutoSwitchRoleIntegrationTest.java | 239 +++++++ .../test/container/PullMultipleReplicasIT.java | 2 +- .../rocketmq/test/container/SlaveBrokerIT.java | 2 +- .../rocketmq/tools/admin/DefaultMQAdminExt.java | 30 +- .../tools/admin/DefaultMQAdminExtImpl.java | 18 + .../apache/rocketmq/tools/admin/MQAdminExt.java | 19 +- .../apache/rocketmq/tools/command/CommandUtil.java | 9 + .../rocketmq/tools/command/MQAdminStartup.java | 15 +- .../command/broker/GetBrokerEpochCommand.java | 119 ++++ .../controller/GetControllerMetaDataCommand.java | 68 ++ .../command/ha/GetSyncStateSetSubCommand.java | 130 ++++ .../tools/command/ha/HAStatusSubCommand.java | 10 +- 113 files changed, 10368 insertions(+), 405 deletions(-)
