You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@rocketmq.apache.org by hz...@apache.org on 2023/01/02 12:00:17 UTC

[rocketmq] branch dledger-controller-snapshot updated (bddad105f -> ea86b7c45)

This is an automated email from the ASF dual-hosted git repository.

hzh0425 pushed a change to branch dledger-controller-snapshot
in repository https://gitbox.apache.org/repos/asf/rocketmq.git


    from bddad105f [ISSUE #5585] Add tests for controller snapshot (#5706)
     add bbac18be7 [ISSUE #5602] Remove useless log attribute from BrokerConfig (#5603)
     add c5e8a8b80 Fix dleger logging issue (#5607)
     add 48b7ece98 [ISSUE #4487] The trackType is wrong when the consumer in broadcasting subscription (#5609)
     add dba1ac1cd fix TimerMessageStoreTest testTimerFlowControl test
     add d3de48c80 [ISSUE #5605]Introduce tag estimation for lag calculation (#5606)
     add a17991bd0 [ISSUE #5303]Resolved the invalid authentication problem of sending batch messages (#5608)
     add 62a959691 [ISSUE #5595] Add validateSystemTopicWhenUpdateTopic (#5596)
     add aab7d22e7 [ISSUE #5616] Fix POP checkpoint record accessor typo (#5597)
     add 6f9c2f19b [ISSUE #5623] Fix can't load org.sfl4j.LoggerFactory when use mqnamesrv start (#5624)
     add 38a255866 Bazel: Enable all tests in store module (#5622)
     add 322e00a47 [ISSUE #5617] Fix Bazel warning & dependency (#5618)
     add a4e9d19d2 Add popMessage AddressableMessageQueue interface
     add 751c28067 Change ClusterMessageService field to protected
     add 9b1b62515 Add notification in MQClientAPIExt
     add 31a7edd61 Add else handle for notification
     add 80b63ab1d Persist consumer offset should not be disabled when auto commit is turned off (#5635)
     add fac311206  [ISSUE #5626] Optimize DefaultMessageStore#getEarliestMessageTime and DefaultMessageStore#pickupStoreTimestamp (#5627)
     add 59acc7d35 Try to make AutoSwitchRoleIntegrationTest more stable (#5638)
     add e5fadc7db Deprecated the ambiguous methods of lite pull consumer (#5640)
     add b56706423 Optimize handle json in pop message (#5643)
     add 0ac09dee7 [ISSUE #5647]Polish PullMessageService some methods parameter name (#5650)
     add 49fc6eded [ISSUE #5568] Support long length group and topic for pop mode consumption (#5611)
     add d5e6fb663 Fix bug that make static topic ITs unable to pass (#5645)
     add 508f5b14b [ISSUE #5583] fix test ReceiptHandleProcessorTest#testRenewReceiptHandleWhenTimeout (#5652)
     add 4c7f0ecce [ISSUE #5654] support calculate inflight messages for pop (#5655)
     add 7cab0a1aa [ISSUSE #5589] record subscription from request (#5590)
     add 7a68fca72 [ISSUE #5659] remove redundant error log output (#5662)
     add cc6614c23 Fix bug that make static topic ITs unable to pass (#5666)
     add aa0216007 [ISSUE #5651] Fix unable to send messages normally due to HA disconnection (#5667)
     add f96840f1d [ISSUE #5670] Add a note to the example of TimerMessage example (#5671)
     add 2f460855d [ISSUE #5668] Polish AutoSwitchHAClient and AutoSwitchHAConnection Comments (#5669)
     add 774bc6752 optimize LagCalculationIT
     add 934f5b657 [ISSUE #5406] Add processor for remoting messaging module
     add 4b9816e4a [ISSUE #5406] Support getConsumerIdList
     add b887313bf [ISSUE #5406] Add unit test
     add 56551b596 [ISSUE #5485] client connection management
     add 6c8233043 [ISSUE #5485] test cases for client connection management
     add 48673af76 [ISSUE #5486] Add remoting server
     add 8a23c54a9 [ISSUE #5486] polish clean expire request in remoting server
     add 4c0e06749 [ISSUE #5486] polish MultiProtocolRemotingServer
     add 7e916e3db [ISSUE #5406] support transaction message for remoting proxy
     add 832fc57a0 [ISSUE #5486] polish tls config; add tcnative dependency
     add 21a01e3c6 [ISSUE #5406] use remotingAccessAddr and ListenPort in topicRoute for remoting proxy
     add 6351e1957 [ISSUE #5485] polish channel management which is been synced from other proxy
     add 96bab46bd [ISSUE #5485] polish channel management
     add 834287af0 [ISSUE #5485] add test cases for channel management
     add 29c4122d9 [ISSUE #5486] Add AuthenticationPipeline
     add 561fc2e73 [ISSUE #5392] Remove unused method
     add 274a53132 [ISSUE #5406] Fix brokerName for SEND_MESSAGE_V2
     add 9897e74a6 [ISSUE #5406] Overwrite sysFlag to broker
     add 416427de1 [ISSUE #5392] Adapt for logging and module refector
     add 1e71cd118 [ISSUE #5406] Fix PullMessageActivityTest
     add 23c8efd80 [ISSUE #5485] Fix GrpcBaseIT
     add b713aebfa [ISSUE #5485] Fix by code review
     add 8c9a9d36b [ISSUE #5485] Remove ConsumerManagerInterface and ProducerManagerInterface
     add 4b311ff4d [ISSUE #5485] Use local address, remoting port and grpc port to build unique local proxy Id
     add 373c1bd13 [ISSUE #5485] Fix merge code issue
     add bdf5c95ce [ISSUE #5485] Fix ClusterGrpcIT
     add e5c3f2127 [ISSUE #5631]optimize ReplicasInfoManager#registerBroker logic (#5633)
     add e197297d3 [ISSUE #5676] Support for dynamic Logging in proxy and controller modules (#5677)
     add 178553eea [ISSUE #5673] Add the windows platform script as the controller quick start (#5674)
     add c4e581cf9 [ISSUE #5686] Polish ReplicasInfoManager comment and static log attribute (#5687)
     add 48848362d [ISSUE #5692] Polish Controller headers toString (#5693)
     add aa7a44250 [ISSUE #5695] Optimize broker startup (#5696)
     add 7bd02dbef [ISSUE #5688] Add log xml config file into distribution config directory (#5689)
     add 81e3648e3 Introduce retry topic and lag estimation for lag calculation. (#5702)
     add 4fdf91f44 [ISSUE #5726] VerifyDelay should break the loop when matched the delayed message. (#5727)
     add d63fb923c [ISSUE #5730] Translate chinese to english in API_Reference_DefaultMQProducer.md document (#5731)
     add 04faaa98e [ISSUE #5732] StaticTopic link not found in cn README.md (#5733)
     add e77d0673f [ISSUE #5724]Add proxy module log xml to distribution directory (#5725)
     add f365685ae Specifiy logback configuration file in command line (#5735)
     add 646d04f42 [ISSUE #5712] Fix the invalid of heartbeat detection after controller switch (#5711)
     add 9f8e85bb7 [ISSUE #5754] [RIP-57] Add asynchronous interfaces to MessageStore (#5755)
     add a4df727c2 fix bug in compensateSubscribeData (#5777)
     add 3effd04fb [ISSUE #5763] add the default subscribe * tag method (#5764)
     add e98653472 [ISSUE #5699] remove duplicate code definition of UtilAll.isBlank (#5700)
     add 8e2ee2381 [ISSUE #5783] Fix compilation warning (#5784)
     add fefbc3c46 [ISSUE #5780]Replace DLedgerServer's deprecated getdLedgerLeaderElector method with getDLedgerLeaderElector (#5781)
     add 70788a220 [ISSUE #5785]Translation controller deploy.md chinese document to english document (#5786)
     add 59dfe8db7 [ISSUE #5776] Remove duplicate empty string checks (#5775)
     add 83c4a8f3f Support long polling in rocketmq proxy in the protocol (#5788)
     add b95f69a78 [ISSUE #5770]Translation controller quick_start.md chinese document to english document (#5771)
     add 8d65abf4a [ISSUE #5793]Translation QuorumACK.md chinese document to english document and polish cn document (#5794)
     add 5de60cf59 [ISSUE #5791]Fix controller deploy.md and quick_start.md link not correct (#5792)
     add dd4d188bd [ISSUE #5789]Translation controller design.md chinese document to english document (#5790)
     add 56490de0b [ISSUE #5741]Specifiy logback configuration file in cmd command line for windows platform (#5744)
     add e1dfc0db5 [ISSUE #5714] Fix the issue that broker can't work normally when transientStorePool=true in controller mode (#5722)
     add 59408615e Merge remote-tracking branch 'origin/dledger-controller-snapshot' into tmp/snapshot
     add 94d44aa20 solve merge conflicts
     add 4546c38e4 re trigger tests
     add 8a3b3a532 remove useless npt check
     add 39d37bb25 change log to LOGGER
     add e634eb75a Add switch-default
     add 2c95a02fc Add empty snapshot check test
     add 1e824a74e make ReplicasInfoManagerTest.registerNewBroker return void
     add 848db9a98 polish ReplicasInfoManagerTest
     add 1f91bf8b2 Add check empty snapshot in StatemachineSnapshotFileGeneratorTest
     add 5d2096601 Add bad case in StatemachineSnapshotFileGeneratorTest
     add 95e9085b7 Add shutdown hook in StatemachineSnapshotFileGeneratorTest
     add ea86b7c45 Polish DLedgerControllerTest

No new revisions were added by this update.

Summary of changes:
 WORKSPACE                                          |   6 +-
 .../rocketmq/acl/plain/PlainAccessResource.java    |   1 +
 broker/BUILD.bazel                                 |   2 +-
 .../apache/rocketmq/broker/BrokerController.java   |  29 +-
 .../org/apache/rocketmq/broker/BrokerStartup.java  | 272 +++++++-------
 .../rocketmq/broker/client/ConsumerGroupInfo.java  |   4 +
 .../rocketmq/broker/client/ConsumerManager.java    |  84 ++++-
 .../broker/controller/ReplicasManager.java         |   2 +-
 .../rocketmq/broker/failover/EscapeBridge.java     |  66 ++--
 .../broker/filtersrv/FilterServerManager.java      |   4 +-
 .../broker/metrics/BrokerMetricsConstant.java      |   2 +-
 .../broker/metrics/BrokerMetricsManager.java       |  31 +-
 .../broker/metrics/ConsumerLagCalculator.java      | 188 +++++++---
 .../apache/rocketmq/broker/out/BrokerOuterAPI.java | 368 ++++++++++--------
 .../processor/AbstractSendMessageProcessor.java    |  15 +-
 .../broker/processor/AckMessageProcessor.java      |  11 +
 .../broker/processor/AdminBrokerProcessor.java     |  41 +-
 .../processor/ChangeInvisibleTimeProcessor.java    |   2 +-
 .../broker/processor/ConsumerManageProcessor.java  |  17 +-
 .../processor/DefaultPullMessageResultHandler.java |  32 +-
 .../broker/processor/PopBufferMergeService.java    |   2 +-
 .../processor/PopInflightMessageCounter.java       | 156 ++++++++
 .../broker/processor/PopMessageProcessor.java      | 416 ++++++++++++---------
 .../broker/processor/PopReviveService.java         | 140 +++++--
 .../broker/processor/PullMessageProcessor.java     | 395 ++++++++++---------
 .../broker/processor/SendMessageProcessor.java     |  10 +-
 .../subscription/SubscriptionGroupManager.java     |   9 +-
 .../rocketmq/broker/topic/TopicConfigManager.java  |  11 +-
 .../org/apache/rocketmq/broker/util/HookUtils.java |  28 +-
 .../broker/client/ConsumerManagerScannerTest.java  |   2 +-
 .../broker/client/ConsumerManagerTest.java         |  67 +++-
 .../broker/controller/ReplicasManagerTest.java     |   4 +-
 .../rocketmq/broker/failover/EscapeBridgeTest.java |  36 ++
 .../processor/PopInflightMessageCounterTest.java   | 101 +++++
 .../broker/processor/PopMessageProcessorTest.java  |  27 +-
 .../broker/processor/PullMessageProcessorTest.java |  38 +-
 .../apache/rocketmq/broker/util/HookUtilsTest.java |  69 ++++
 .../client/consumer/DefaultLitePullConsumer.java   |  23 +-
 .../rocketmq/client/consumer/LitePullConsumer.java |  39 +-
 .../consumer/store/RemoteBrokerOffsetStore.java    |   1 -
 .../rocketmq/client/impl/MQClientAPIImpl.java      |  42 +--
 .../impl/consumer/DefaultLitePullConsumerImpl.java |   4 -
 .../client/impl/consumer/PullMessageService.java   |   8 +-
 .../consumer/DefaultLitePullConsumerTest.java      |   2 +-
 .../org/apache/rocketmq/common/BrokerConfig.java   |  56 ++-
 .../java/org/apache/rocketmq/common/MixAll.java    |  52 +--
 .../java/org/apache/rocketmq/common/UtilAll.java   |  12 +-
 .../common/attribute/TopicMessageType.java         |  17 +
 .../rocketmq/common/message/MessageDecoder.java    |  30 +-
 .../rocketmq/common/message/MessageExtBatch.java   |   4 +-
 .../common/message/MessageExtBrokerInner.java      |  10 +
 .../rocketmq/common/message/MessageVersion.java    |  22 ++
 .../rocketmq/common/sysflag/PullSysFlag.java       |   4 +
 ...r.java => FutureTaskExtThreadPoolExecutor.java} |  31 +-
 .../rocketmq/common/thread/ThreadPoolMonitor.java  |   2 +-
 .../org/apache/rocketmq/common/UtilAllTest.java    |  33 +-
 .../common/message/MessageDecoderTest.java         |  48 ++-
 controller/pom.xml                                 |  13 +-
 .../controller/BrokerHeartbeatManager.java         |  18 +-
 .../apache/rocketmq/controller/BrokerLiveInfo.java |  37 +-
 .../rocketmq/controller/ControllerManager.java     |  67 ++--
 .../controller/impl/DLedgerController.java         |   2 +-
 .../impl/DefaultBrokerHeartbeatManager.java        |  69 ++--
 .../impl/manager/MetadataManagerType.java          |   3 +-
 .../impl/manager/ReplicasInfoManager.java          |  54 ++-
 .../processor/ControllerRequestProcessor.java      |  14 +-
 .../src/main/resources/rmq.controller.logback.xml  |   2 +-
 .../impl/controller/ControllerManagerTest.java     |   8 +-
 .../controller/impl/DLedgerControllerTest.java     |  49 +--
 .../impl/DefaultBrokerHeartbeatManagerTest.java    |   3 +-
 .../impl/manager/ReplicasInfoManagerTest.java      |  97 +++--
 .../StatemachineSnapshotFileGeneratorTest.java     |  24 +-
 .../controller/fast-try-independent-deployment.cmd |  36 ++
 .../bin/controller/fast-try-namesrv-plugin.cmd     |  36 ++
 distribution/bin/controller/fast-try.cmd           |  37 ++
 distribution/bin/mqadmin                           |   2 +-
 distribution/bin/mqadmin.cmd                       |   2 +-
 distribution/bin/mqbroker                          |   4 +-
 distribution/bin/mqbroker.cmd                      |   2 +-
 distribution/bin/mqcontroller                      |   2 +-
 distribution/bin/mqcontroller.cmd                  |   2 +-
 distribution/bin/mqnamesrv                         |   2 +-
 distribution/bin/mqnamesrv.cmd                     |   2 +-
 distribution/bin/mqproxy                           |   2 +-
 distribution/bin/mqproxy.cmd                       |   2 +-
 distribution/bin/runbroker.cmd                     |   2 +-
 distribution/bin/runserver.cmd                     |   2 +-
 distribution/release.xml                           |  25 ++
 docs/cn/QuorumACK.md                               |   7 +-
 docs/cn/README.md                                  |   2 +-
 docs/en/QuorumACK.md                               |  73 ++++
 .../client/java/API_Reference_DefaultMQProducer.md |   2 +-
 docs/en/controller/deploy.md                       | 110 ++++++
 docs/en/controller/design.md                       | 192 ++++++++++
 docs/en/controller/quick_start.md                  | 200 ++++++++++
 .../image/controller/controller_design_1.png       | Bin
 .../image/controller/controller_design_2.png       | Bin
 .../image/controller/controller_design_3.png       | Bin
 .../image/controller/controller_design_4.png       | Bin
 .../image/controller/controller_design_5.png       | Bin
 .../image/controller/controller_design_6.png       | Bin
 .../image/controller/quick-start/changemaster.png  | Bin
 .../image/controller/quick-start/controller.png    | Bin
 .../image/controller/quick-start/epoch.png         | Bin
 .../image/controller/quick-start/syncstateset.png  | Bin
 .../example/schedule/TimerMessageConsumer.java     |   3 +
 .../example/schedule/TimerMessageProducer.java     |   2 +
 .../example/simple/LitePullConsumerAssign.java     |   2 +-
 .../LitePullConsumerAssignWithSubExpression.java   |   2 +-
 namesrv/BUILD.bazel                                |   3 +-
 pom.xml                                            |   8 +-
 proxy/BUILD.bazel                                  |   2 +
 proxy/pom.xml                                      |   4 +
 .../org/apache/rocketmq/proxy/ProxyStartup.java    |   5 +-
 .../proxy/common/channel/ChannelHelper.java        |  49 +++
 .../rocketmq/proxy/common/utils/FutureUtils.java   |   6 +
 .../apache/rocketmq/proxy/config/ProxyConfig.java  | 352 +++++++++++++++--
 .../rocketmq/proxy/grpc/GrpcServerBuilder.java     |   6 +-
 .../proxy/grpc/v2/DefaultGrpcMessingActivity.java  |   3 +-
 .../proxy/grpc/v2/channel/GrpcChannelManager.java  |   7 +-
 .../proxy/grpc/v2/channel/GrpcClientChannel.java   |  71 +++-
 .../proxy/grpc/v2/client/ClientActivity.java       |  54 ++-
 .../grpc/v2/common/GrpcClientSettingsManager.java  |  59 ++-
 .../proxy/grpc/v2/common/GrpcValidator.java        |  18 +-
 .../grpc/v2/consumer/ReceiveMessageActivity.java   |  81 ++--
 .../proxy/processor/AbstractProcessor.java         |  19 -
 .../rocketmq/proxy/processor/ClientProcessor.java  |   5 +
 .../proxy/processor/ConsumerProcessor.java         |  40 +-
 .../proxy/processor/DefaultMessagingProcessor.java |  19 +
 .../proxy/processor/MessagingProcessor.java        |   8 +
 .../proxy/processor/ProducerProcessor.java         |   2 +-
 .../proxy/processor/ReceiptHandleProcessor.java    |   6 +
 .../RequestBrokerProcessor.java}                   |  26 +-
 .../channel/ChannelExtendAttributeGetter.java}     |   6 +-
 .../processor/channel/ChannelProtocolType.java     |  24 +-
 .../proxy/processor/channel/RemoteChannel.java     | 116 ++++++
 .../channel/RemoteChannelConverter.java}           |   6 +-
 .../processor/channel/RemoteChannelSerializer.java |  65 ++++
 .../proxy/remoting/ClientHousekeepingService.java  |  22 +-
 .../remoting/MultiProtocolRemotingServer.java      |  82 ++++
 .../proxy/remoting/MultiProtocolTlsHelper.java     | 113 ++++++
 .../proxy/remoting/RemotingProtocolServer.java     | 368 ++++++++++++++++++
 .../RemotingProxyOutClient.java}                   |   9 +-
 .../activity/AbstractRemotingActivity.java         | 178 +++++++++
 .../activity/AckMessageActivity.java}              |  22 +-
 .../activity/ChangeInvisibleTimeActivity.java}     |  22 +-
 .../remoting/activity/ClientManagerActivity.java   | 179 +++++++++
 .../remoting/activity/ConsumerManagerActivity.java | 125 +++++++
 .../remoting/activity/GetTopicRouteActivity.java   |  72 ++++
 .../remoting/activity/PopMessageActivity.java      |  41 ++
 .../remoting/activity/PullMessageActivity.java     |  63 ++++
 .../remoting/activity/SendMessageActivity.java     |  90 +++++
 .../remoting/activity/TransactionActivity.java     |  68 ++++
 .../proxy/remoting/channel/RemotingChannel.java    | 231 ++++++++++++
 .../remoting/channel/RemotingChannelManager.java   | 141 +++++++
 .../common/RemotingConverter.java}                 |  41 +-
 .../remoting/pipeline/AuthenticationPipeline.java  |  46 +++
 .../proxy/remoting/pipeline/RequestPipeline.java   |  20 +-
 .../proxy/remoting/protocol/ProtocolHandler.java   |  14 +-
 .../protocol/ProtocolNegotiationHandler.java       |  61 +++
 .../http2proxy/Http2ProtocolProxyHandler.java      | 119 ++++++
 .../http2proxy/Http2ProxyBackendHandler.java       |  67 ++++
 .../http2proxy/Http2ProxyFrontendHandler.java      |  78 ++++
 .../protocol/remoting/RemotingProtocolHandler.java |  60 +++
 .../proxy/service/ClusterServiceManager.java       |  31 +-
 .../proxy/service/LocalServiceManager.java         |  11 +-
 .../rocketmq/proxy/service/ServiceManager.java     |   3 +
 .../rocketmq/proxy/service/admin/AdminService.java |  22 +-
 .../proxy/service/admin/DefaultAdminService.java   | 146 ++++++++
 .../proxy/service/channel/SimpleChannel.java       |  13 +
 .../service/client/ClusterConsumerManager.java     |  69 ++++
 .../service/message/ClusterMessageService.java     |  38 +-
 .../proxy/service/message/LocalMessageService.java |  42 ++-
 .../proxy/service/message/MessageService.java      |   6 +
 .../proxy/service/mqclient/MQClientAPIExt.java     |  30 ++
 .../sysmessage/AbstractSystemMessageSyncer.java    | 182 +++++++++
 .../proxy/service/sysmessage/HeartbeatSyncer.java  | 230 ++++++++++++
 .../service/sysmessage/HeartbeatSyncerData.java    | 176 +++++++++
 .../proxy/service/sysmessage/HeartbeatType.java    |   6 +-
 proxy/src/main/resources/rmq.proxy.logback.xml     |   2 +-
 .../rocketmq/proxy/grpc/v2/BaseActivityTest.java   |   2 +-
 .../grpc/v2/channel/GrpcClientChannelTest.java     |  82 ++++
 ...pcConverterTest.java => GrpcValidatorTest.java} |  40 +-
 .../v2/consumer/ReceiveMessageActivityTest.java    |   2 +
 .../processor/ReceiptHandleProcessorTest.java      |   6 +-
 .../proxy/processor/channel/RemoteChannelTest.java |  50 +++
 .../activity/AbstractRemotingActivityTest.java     | 200 ++++++++++
 .../remoting/activity/PullMessageActivityTest.java | 165 ++++++++
 .../remoting/activity/SendMessageActivityTest.java | 102 +++++
 .../channel/RemotingChannelManagerTest.java        | 162 ++++++++
 .../remoting/channel/RemotingChannelTest.java      |  80 ++++
 .../service/admin/DefaultAdminServiceTest.java     | 103 +++++
 .../mqclient/ProxyClientRemotingProcessorTest.java |   5 +-
 .../service/sysmessage/HeartbeatSyncerTest.java    | 319 ++++++++++++++++
 .../remoting/netty/NettyRemotingServer.java        |  68 +++-
 .../remoting/protocol/RemotingCommand.java         |  17 +-
 .../rocketmq/remoting/protocol/RequestSource.java  |   7 +
 .../remoting/protocol/RocketMQSerializable.java    |  13 -
 .../remoting/protocol/body/BrokerMemberGroup.java  |   9 +
 .../protocol/header/SendMessageRequestHeader.java  |  74 ----
 .../CleanControllerBrokerDataRequestHeader.java    |   6 +-
 .../controller/ElectMasterRequestHeader.java       |   4 +-
 .../controller/ElectMasterResponseHeader.java      |   2 +-
 .../RegisterBrokerToControllerRequestHeader.java   |  36 +-
 .../namesrv/BrokerHeartbeatRequestHeader.java      |  30 ++
 .../remoting/protocol/heartbeat/ConsumeType.java   |   4 +-
 .../remoting/protocol/RequestSourceTest.java       |  44 +++
 .../protocol/RocketMQSerializableTest.java         |  13 -
 store/BUILD.bazel                                  |  11 +-
 .../rocketmq/store/AllocateMappedFileService.java  |   4 +-
 .../java/org/apache/rocketmq/store/CommitLog.java  |  79 ++--
 .../org/apache/rocketmq/store/ConsumeQueue.java    |  91 ++++-
 .../apache/rocketmq/store/DefaultMessageStore.java | 101 ++++-
 .../org/apache/rocketmq/store/DispatchRequest.java |  26 ++
 .../org/apache/rocketmq/store/FlushManager.java    |  21 +-
 .../org/apache/rocketmq/store/MappedFileQueue.java |  25 +-
 .../apache/rocketmq/store/MessageExtEncoder.java   |  43 ++-
 .../org/apache/rocketmq/store/MessageStore.java    | 105 +++++-
 .../apache/rocketmq/store/TransientStorePool.java  |  22 +-
 .../rocketmq/store/config/MessageStoreConfig.java  |  48 ++-
 .../rocketmq/store/dledger/DLedgerCommitLog.java   |  31 +-
 .../store/ha/autoswitch/AutoSwitchHAClient.java    | 160 +++++---
 .../ha/autoswitch/AutoSwitchHAConnection.java      |  28 +-
 .../store/ha/autoswitch/AutoSwitchHAService.java   |  24 +-
 .../rocketmq/store/logfile/DefaultMappedFile.java  |  59 +--
 .../apache/rocketmq/store/logfile/MappedFile.java  |  20 +-
 .../store/metrics/DefaultStoreMetricsConstant.java |   1 -
 .../store/plugin/AbstractPluginMessageStore.java   |  56 +++
 .../java/org/apache/rocketmq/store/pop/AckMsg.java |  16 +
 .../apache/rocketmq/store/pop/PopCheckPoint.java   |  10 +-
 .../rocketmq/store/queue/BatchConsumeQueue.java    | 116 +++++-
 .../store/queue/ConsumeQueueInterface.java         |  11 +
 .../java/org/apache/rocketmq/store/HATest.java     |   4 +
 .../store/ha/autoswitch/AutoSwitchHATest.java      |  35 +-
 .../org/apache/rocketmq/store/pop/AckMsgTest.java  |  51 +++
 .../store/queue/BatchConsumeMessageTest.java       | 103 +++++
 .../rocketmq/store/queue/ConsumeQueueTest.java     | 205 +++++++++-
 .../store/timer/TimerMessageStoreTest.java         |   8 +-
 test/BUILD.bazel                                   |   3 +-
 .../listener/rmq/concurrent/RMQBlockListener.java  |  60 +++
 .../rocketmq/test/util/MQAdminTestUtils.java       |  25 +-
 .../org/apache/rocketmq/test/util/VerifyUtils.java |   1 +
 .../test/autoswitchrole/AutoSwitchRoleBase.java    |  10 +-
 .../org/apache/rocketmq/test/base/BaseConf.java    |   6 +-
 .../rocketmq/test/base/IntegrationTestBase.java    |  12 +
 .../apache/rocketmq/test/grpc/v2/GrpcBaseIT.java   |   2 +
 .../rocketmq/test/offset/LagCalculationIT.java     | 226 +++++++++++
 .../rocketmq/test/retry/PopConsumerRetryIT.java    | 203 ++++++++++
 .../rocketmq/test/statictopic/StaticTopicIT.java   |   6 +-
 .../rocketmq/tools/admin/DefaultMQAdminExt.java    |   7 +
 .../tools/admin/DefaultMQAdminExtImpl.java         |  24 +-
 .../apache/rocketmq/tools/admin/MQAdminExt.java    |   8 +-
 .../admin/common/AdminToolsResultCodeEnum.java     |   3 +-
 253 files changed, 10583 insertions(+), 1924 deletions(-)
 create mode 100644 broker/src/main/java/org/apache/rocketmq/broker/processor/PopInflightMessageCounter.java
 create mode 100644 broker/src/test/java/org/apache/rocketmq/broker/processor/PopInflightMessageCounterTest.java
 create mode 100644 broker/src/test/java/org/apache/rocketmq/broker/util/HookUtilsTest.java
 copy common/src/main/java/org/apache/rocketmq/common/thread/{ThreadPoolQueueSizeMonitor.java => FutureTaskExtThreadPoolExecutor.java} (52%)
 create mode 100644 distribution/bin/controller/fast-try-independent-deployment.cmd
 create mode 100644 distribution/bin/controller/fast-try-namesrv-plugin.cmd
 create mode 100644 distribution/bin/controller/fast-try.cmd
 create mode 100644 docs/en/QuorumACK.md
 create mode 100644 docs/en/controller/deploy.md
 create mode 100644 docs/en/controller/design.md
 create mode 100644 docs/en/controller/quick_start.md
 copy docs/{cn => en}/image/controller/controller_design_1.png (100%)
 copy docs/{cn => en}/image/controller/controller_design_2.png (100%)
 copy docs/{cn => en}/image/controller/controller_design_3.png (100%)
 copy docs/{cn => en}/image/controller/controller_design_4.png (100%)
 copy docs/{cn => en}/image/controller/controller_design_5.png (100%)
 copy docs/{cn => en}/image/controller/controller_design_6.png (100%)
 copy docs/{cn => en}/image/controller/quick-start/changemaster.png (100%)
 copy docs/{cn => en}/image/controller/quick-start/controller.png (100%)
 copy docs/{cn => en}/image/controller/quick-start/epoch.png (100%)
 copy docs/{cn => en}/image/controller/quick-start/syncstateset.png (100%)
 create mode 100644 proxy/src/main/java/org/apache/rocketmq/proxy/common/channel/ChannelHelper.java
 copy proxy/src/main/java/org/apache/rocketmq/proxy/{service/channel/InvocationContext.java => processor/RequestBrokerProcessor.java} (52%)
 copy proxy/src/main/java/org/apache/rocketmq/proxy/{config/ConfigFile.java => processor/channel/ChannelExtendAttributeGetter.java} (85%)
 copy common/src/main/java/org/apache/rocketmq/common/message/MessageRequestMode.java => proxy/src/main/java/org/apache/rocketmq/proxy/processor/channel/ChannelProtocolType.java (73%)
 create mode 100644 proxy/src/main/java/org/apache/rocketmq/proxy/processor/channel/RemoteChannel.java
 copy proxy/src/main/java/org/apache/rocketmq/proxy/{config/ConfigFile.java => processor/channel/RemoteChannelConverter.java} (85%)
 create mode 100644 proxy/src/main/java/org/apache/rocketmq/proxy/processor/channel/RemoteChannelSerializer.java
 copy namesrv/src/main/java/org/apache/rocketmq/namesrv/routeinfo/BrokerHousekeepingService.java => proxy/src/main/java/org/apache/rocketmq/proxy/remoting/ClientHousekeepingService.java (67%)
 create mode 100644 proxy/src/main/java/org/apache/rocketmq/proxy/remoting/MultiProtocolRemotingServer.java
 create mode 100644 proxy/src/main/java/org/apache/rocketmq/proxy/remoting/MultiProtocolTlsHelper.java
 create mode 100644 proxy/src/main/java/org/apache/rocketmq/proxy/remoting/RemotingProtocolServer.java
 copy proxy/src/main/java/org/apache/rocketmq/proxy/{service/channel/InvocationContextInterface.java => remoting/RemotingProxyOutClient.java} (75%)
 create mode 100644 proxy/src/main/java/org/apache/rocketmq/proxy/remoting/activity/AbstractRemotingActivity.java
 copy proxy/src/main/java/org/apache/rocketmq/proxy/{service/mqclient/DoNothingClientRemotingProcessor.java => remoting/activity/AckMessageActivity.java} (56%)
 copy proxy/src/main/java/org/apache/rocketmq/proxy/{service/mqclient/DoNothingClientRemotingProcessor.java => remoting/activity/ChangeInvisibleTimeActivity.java} (55%)
 create mode 100644 proxy/src/main/java/org/apache/rocketmq/proxy/remoting/activity/ClientManagerActivity.java
 create mode 100644 proxy/src/main/java/org/apache/rocketmq/proxy/remoting/activity/ConsumerManagerActivity.java
 create mode 100644 proxy/src/main/java/org/apache/rocketmq/proxy/remoting/activity/GetTopicRouteActivity.java
 create mode 100644 proxy/src/main/java/org/apache/rocketmq/proxy/remoting/activity/PopMessageActivity.java
 create mode 100644 proxy/src/main/java/org/apache/rocketmq/proxy/remoting/activity/PullMessageActivity.java
 create mode 100644 proxy/src/main/java/org/apache/rocketmq/proxy/remoting/activity/SendMessageActivity.java
 create mode 100644 proxy/src/main/java/org/apache/rocketmq/proxy/remoting/activity/TransactionActivity.java
 create mode 100644 proxy/src/main/java/org/apache/rocketmq/proxy/remoting/channel/RemotingChannel.java
 create mode 100644 proxy/src/main/java/org/apache/rocketmq/proxy/remoting/channel/RemotingChannelManager.java
 copy proxy/src/main/java/org/apache/rocketmq/proxy/{grpc/GrpcServer.java => remoting/common/RemotingConverter.java} (53%)
 create mode 100644 proxy/src/main/java/org/apache/rocketmq/proxy/remoting/pipeline/AuthenticationPipeline.java
 copy remoting/src/main/java/org/apache/rocketmq/remoting/netty/NettyRequestProcessor.java => proxy/src/main/java/org/apache/rocketmq/proxy/remoting/pipeline/RequestPipeline.java (66%)
 copy test/src/main/java/org/apache/rocketmq/test/clientinterface/MQConsumer.java => proxy/src/main/java/org/apache/rocketmq/proxy/remoting/protocol/ProtocolHandler.java (70%)
 create mode 100644 proxy/src/main/java/org/apache/rocketmq/proxy/remoting/protocol/ProtocolNegotiationHandler.java
 create mode 100644 proxy/src/main/java/org/apache/rocketmq/proxy/remoting/protocol/http2proxy/Http2ProtocolProxyHandler.java
 create mode 100644 proxy/src/main/java/org/apache/rocketmq/proxy/remoting/protocol/http2proxy/Http2ProxyBackendHandler.java
 create mode 100644 proxy/src/main/java/org/apache/rocketmq/proxy/remoting/protocol/http2proxy/Http2ProxyFrontendHandler.java
 create mode 100644 proxy/src/main/java/org/apache/rocketmq/proxy/remoting/protocol/remoting/RemotingProtocolHandler.java
 copy remoting/src/main/java/org/apache/rocketmq/remoting/protocol/body/ProducerTableInfo.java => proxy/src/main/java/org/apache/rocketmq/proxy/service/admin/AdminService.java (59%)
 create mode 100644 proxy/src/main/java/org/apache/rocketmq/proxy/service/admin/DefaultAdminService.java
 create mode 100644 proxy/src/main/java/org/apache/rocketmq/proxy/service/client/ClusterConsumerManager.java
 create mode 100644 proxy/src/main/java/org/apache/rocketmq/proxy/service/sysmessage/AbstractSystemMessageSyncer.java
 create mode 100644 proxy/src/main/java/org/apache/rocketmq/proxy/service/sysmessage/HeartbeatSyncer.java
 create mode 100644 proxy/src/main/java/org/apache/rocketmq/proxy/service/sysmessage/HeartbeatSyncerData.java
 copy acl/src/main/java/org/apache/rocketmq/acl/AccessResource.java => proxy/src/main/java/org/apache/rocketmq/proxy/service/sysmessage/HeartbeatType.java (87%)
 create mode 100644 proxy/src/test/java/org/apache/rocketmq/proxy/grpc/v2/channel/GrpcClientChannelTest.java
 copy proxy/src/test/java/org/apache/rocketmq/proxy/grpc/v2/common/{GrpcConverterTest.java => GrpcValidatorTest.java} (51%)
 create mode 100644 proxy/src/test/java/org/apache/rocketmq/proxy/processor/channel/RemoteChannelTest.java
 create mode 100644 proxy/src/test/java/org/apache/rocketmq/proxy/remoting/activity/AbstractRemotingActivityTest.java
 create mode 100644 proxy/src/test/java/org/apache/rocketmq/proxy/remoting/activity/PullMessageActivityTest.java
 create mode 100644 proxy/src/test/java/org/apache/rocketmq/proxy/remoting/activity/SendMessageActivityTest.java
 create mode 100644 proxy/src/test/java/org/apache/rocketmq/proxy/remoting/channel/RemotingChannelManagerTest.java
 create mode 100644 proxy/src/test/java/org/apache/rocketmq/proxy/remoting/channel/RemotingChannelTest.java
 create mode 100644 proxy/src/test/java/org/apache/rocketmq/proxy/service/admin/DefaultAdminServiceTest.java
 create mode 100644 proxy/src/test/java/org/apache/rocketmq/proxy/service/sysmessage/HeartbeatSyncerTest.java
 create mode 100644 remoting/src/test/java/org/apache/rocketmq/remoting/protocol/RequestSourceTest.java
 copy example/src/main/java/org/apache/rocketmq/example/simple/CachedQueue.java => store/src/main/java/org/apache/rocketmq/store/FlushManager.java (66%)
 create mode 100644 store/src/test/java/org/apache/rocketmq/store/pop/AckMsgTest.java
 create mode 100644 test/src/main/java/org/apache/rocketmq/test/listener/rmq/concurrent/RMQBlockListener.java
 create mode 100644 test/src/test/java/org/apache/rocketmq/test/offset/LagCalculationIT.java
 create mode 100644 test/src/test/java/org/apache/rocketmq/test/retry/PopConsumerRetryIT.java