This is an automated email from the ASF dual-hosted git repository. jinrongtong pushed a change to branch master in repository https://gitbox.apache.org/repos/asf/rocketmq.git
from f7425f52f9 [maven-release-plugin] prepare release rocketmq-all-5.1.3 (#6938) add e369d7deac [maven-release-plugin] prepare for next development iteration (#6939) add 16ef575537 [ISSUE #4612] Fix trace not complete (#6941) add fa8f256b50 [ISSUE #6943] fix docs typo in docs/cn/controller/design.md #6943 add f3ce3e8fb9 [ISSUE #6940] change dataReadAheadEnable default to false (#6944) add dd27e8b77c [ISSUE #6945] Add doc issue template (#6946) add c96a0b5665 [ISSUE #6933] Support delete expired or damaged file in tiered storage and optimize fetch code (#6952) add 8ab99aceb7 [ISSUE #6754] Support reentrant orderly consumption for proxy (#6755) add 87075c2662 [ISSUE #6955] add removeOne method for ReceiptHandleGroup (#6955) add bbbe737e4e [ISSUE #6964] use the correct context in telemetry; polish the code structure (#6965) add 79967c00b2 [ISSUE #6933] Optimize delete topic in tiered storage (#6973) add f07f93b3cf [ISSUE #6982] Update the version in the README.md document to 5.1.3 (#6983) add d1bcda57b3 [ISSUE #6974] Feature/refector receipt processor (#6975) add 5c3bd98e50 [ISSUE #6742] Support daily build tests (#6744) add 955428278c [ISSUE #6991] Delete rocketmq.client.logUseSlf4j=true in JAVA_OPT add 00fc42b8be [ISSUE #6957] Support Proxy Protocol for gRPC and Remoting Server (#6958) add 4f840afcb0 [ISSUE #6960] Added Slot formatting sketch comments (#6961) add 58550f074e [ISSUE #7008] Fix the issue of protocol parsing failure when using haproxy and tls together (#7009) add 8e6b5e62bd [ISSUE #6999] Add interface ReceiptHandleManager (#7000) add 49ccdc9d2a The bug label relies on manual identification rather than automatic application (#7006) add 15c6889bb0 fix receive message activity attempt id not correct (#7012) add b4496be687 [ISSUE #7010] Fix the HandshakeHandler returns when detect haproxy version need more data (#7011) add 1f0f3b2d6d [ISSUE #7013] Polish ColdDataCheckService's logic (#7014) add d206590692 [ISSUE #6979] Fix opaque will be duplicate in multi client scene (#6985) add 33cb22e1c0 [ISSUE #7018] fix append in tiered storage when message offset incorrect (#7019) add 70a66eda2c Fix LEAK: HAProxyMessage.release() was not called before it's garbage-collected (#7025) add 5914ff8dbb [ISSUE #6968] fix grpc acl bug (#6969) add 440be1ed4c [ISSUE #7031] fix Pop caused broker memory leak bug (#7032) add 737c1e5338 [ISSUE #7029] Add a config to determine whether pop response should return the actual retry topic or tamper with the original topic (#7030) add 7996ec3b3f [ISSUE #6879] ConcurrentHashMapUtils fails to solve the loop bug in JDK8 (#6883) add e0f5295fed passing the renew event type to create the correct context (#7045) add 2c5808b9fd [#ISSUE 7035] Fix correct min offset behavior in tiered storage (#7038) add ebad3c8a6b [ISSUE #7047] NettyRemotingClient#invokeOneway throw Exception with address add 804f2d85f2 [ISSUE ##7036] rename method: getWriteQueueIdByBroker to getWriteQueueNumsByBroker(#7037) add af993d28e2 [ISSUE #3717][RIP-27] Auto batching in producer add 90c5382aee [ISSUE #7061] Support forward HAProxyMessage for Multi Protocol server. (#7062) add 8027cfc7cb [ISSUE #7063] doc: fix typo in user_guide.md add 3102758487 fix: npe in lockBatchMQ and unlockBatchMQ (#7078) add 047ef7498f Ensuring consistency between broker and nameserver data when deleting a topic (#7066) add 32eb1d5557 [ISSUE #7068] Fix failed to create syncer topic when the proxy was just started (#7076) add d797377880 [ISSUE #7056] Avoid close success channel if invokeSync most time cost on get connection for channel (#7057) add d0a69be563 [ISSUE #6810] Fix the bug of mistakenly deleting data in clientChannelTable when the channel expire (#7073) add d429bd72df [ISSUE #7039] Fix retry message filter when subtype is TAG (#7040) add 8baa51e85e [ISSUE #7091] Update the cd command in README (#7096) add 8bcc94829d [ISSUE #7077] Schedule CQ offset invalid. offset=77, cqMinOffset=0, cqMaxOffset=74, queueId=1 (#7084) add a1bf49d5d0 [ISSUE #7093] Avoid dispatch tasks too much cause dispatch task failed (#7094) add ab61183030 [ISSUE #7104] Add ReceiptHandleGroupKey for RenewEvent (#7105) add c06facf089 [ISSUE #7102] Making perm equal to 0 is valid add 1fe5d62334 [ISSUE #7074] Allow a BoundaryType to be specified when retrieving offset based on the timestamp (#7082) add 3bdabf703b [ISSUE #7109] support the mixed topic type (#7110) add c73d8ee346 [ISSUE #6962]operation.md Format adjustment add 3a6ef0400c [ISSUE #7064] [RIP-66-1] Support KV(RocksDB) Storage for Metadata (#7092) add 6bc2c8474a [ISSUE #7135] Temporarily ignoring plainAccessValidator test (#7135) add 04683ec058 [ISSUE 7117] check message is in memory or not when init consumer offset for pop (#7118) add bcba5a8e62 [ISSUE #7146] Log output error needs to be corrected (#7147) add b2deef179d [ISSUE #7144] Accelerate the recovery speed of the tiered storage module (#7145) add 99b39a35f2 [ISSUE #7115] Fix grpc response message NPE (#7116) add c0ba453f38 [ISSUE #7129] Fix resource collisions in acl tests (#7130) add 8741ff8c9b [ISSUE #7153] Add switch for MIXED message type (#7154) add f534501855 [Feature 7155] add errlog when cmd err (#7157) add db58f00c0f [ISSUE #7169] Change metadataThreadPoolQueueCapacity to 100000 (#7170) add 1f04e68a2e [ISSUE #7172] Unified Chinese for Name Server (#7173) add 25005060bb [ISSUE #7176] Correct mismatched logs (#7177) add ac411daa27 [ISSUE #7183] Correct mismatched commandDesc (#7184) add 55e0cdb2af fix: IndexOutOfBoundsException when process pop response (#7003) add a9c0b43f7f [ISSUE #7192] Correct typos (#7193) add 5a3de926b8 Optimize updateSubscription check exist loop (#7190) add 50d1050437 To config the cardinalityLimit for openTelemetry metrics exporting and fix logging config for metrics (#7196) add a4bcc2a74d [ISSUE #7178] refresh metadata after broker startup add 3df1b9232a [ISSUE #7201] Remove the DefaultMessageStore.class dependency in TransientStorePool add 2b93e1e32f Update mqbroker to use runbroker.sh instead of runserver.sh when use --enable-proxy (#7150) add 05e7cde610 [ISSUE #7042] maven-compile job failed, Because TlsTest's serverRejectsSSLClient test case will throw TooLongFrameException (#7179) add 72d796f2b2 [ISSUE #7205] support batch ack for pop orderly (#7206) add cc16a1b512 Set table reference the same object for setSubscriptionGroupTable method (#7204) add fec1414814 [ISSUE #7166] Optimize the display format of admin (#7210) add 744167bd01 [ISSUE #7142] Add command `RocksDBConfigToJson` to inspect rocksdb content (#7180) add bdede35db3 [ISSUE #7124] Fix the typos in the code comments (#7125) add 9bb73b9a38 [#ISSUE 7222] Bug fix and refactoring of the Indexfile in tiered storage (#7224) add 69c26d3d29 [ISSUE #7228] Converge the use of some important variables for some class add 3884f59594 [ISSUE #7149] When creating and updating Topic, there will be problems with permission settings (#7151) add 017ad11047 [ISSUE #7219] Fix Concurrent modify syncStateSet and Mark synchronizing frequently when shrink. (#7220) add 77e8e54b37 [ISSUE #7223] Support batch ack for grpc client in proxy (#7225) add 7e018520ef Add expireAfterAccess for cache (#7247) add 5f6dc90f9d [ISSUE #7250] Beautify command rocksDBConfigToJson output add b4f73e2aab [ISSUE #7271] Optimize the configuration for setting the quantity of TimerDequeuePutMessageService (#7272) add 3e100103af [ISSUE #7277] Enhance rocksDBConfigToJson to support metadata counting (#7276) add fa54915437 [ISSUE #7261] Slave high CPU usage when enableScheduleAsyncDeliver=true (#7262) add 9f34f55e1d [ISSUE #7226] Filter tlvs in ppv2 which contents not are spec-compliant ASCII characters and space (#7227) add b028277018 [ISSUE #6567] [RIP-63] Queue Selection Strategy Optimization (#6568) add bd0e9c09db [ISSUE #7111] Remove responseFuture from the responseTable when exception occurs (#7112) add c78061bf6c [ISSUE#7280] Fix and refactor handle commit exception in tiered storage (#7281) add d000ef947d [ISSUE #7283] Incorrect dledger commitlog min offset after mappedFile re delete failed (#7284) add f82718ae3b [ISSUE #7208] fix: when deleting topic also delete its pop retry topic (#7209) add 31d10385d1 [ISSUE #7289] Fixed asynchronous send backpressure capability add d67b9d64cb [ISSUE #7302] Fix singleTopicRegister code deleted in merge add 37017dbaec [ISSUE #7305] Fix metrics and transactional module not shutdown while broker offline cause coredump(#7307) add e11e29419f [ISSUE #7308] Adding topic blacklist and filter in tiered storage module (#7310) add 628020537f [ISSUE #7293] Fix NPE when alter sync state set add 6fd0073d64 [ISSUE #7319] Optimize fault-tolerant mechanism for sending messages and hot update switch (#7320) add c100d815d7 [ISSUE #7328] Convergent thread pool creation (#7329) add dad6b4dadf [ISSUE #7334] `registerIncrementBrokerData` for single topic update (#7335) add 0dbd0772b9 [ISSUE #7326] Split the request to register to the nameserver (#7325) add a9e353285c Add the configuration of topicQueueLock number to better support different scenarios (#7317) add 57f04c95d3 [ISSUE #7343] Rollback modifications to registerProcessor add dad6ad09d1 [ISSUE #7340] Abstract Duplicate code into a method in `TopicConfigManager` (#7341) add dddd58d2cc Set experimental_ui_max_stdouterr_bytes to 10MB in bazel (#7348) add 1a8e7cb17c [ISSUE #7345] Fix wrong result of searchOffset in tiered storage add fd32dae2ab [ISSUE #6633] Not clear uninitialized files and fix metadata recover (#7342) add 4a8e0d5b85 [ISSUE #7351] Allow mqadmin to operate slave nodes add 831fcc76cd [ISSUE #7363] Fix get message from tiered storage return incorrect next pull offset (#7365) add f05a8da760 Print admin queue watermark in log (#7372) add 42fcd278ca [ISSUE #7374] Prepare to release Apache RocketMQ 5.1.4 (#7375) add b8610d87bb Replace loggingMetricExporter with OtlpJsonLoggingMetricExporter. (#7373) add 1a681bdf9b [maven-release-plugin] prepare release rocketmq-all-5.1.4 (#7377) add 73b3fde837 [maven-release-plugin] prepare for next development iteration (#7379) add 88a9d939ce [ISSUE #7381] Fix the problem of inaccurate timer message metric (#7382) add d7e5c4d1a4 [ISSUE #7389] Fix the problem that getLastMappedFile function affects performance add 3fd43353fd [ISSUE #7393] Add timeout configuration for grpc server (#7394) add c3b86cd1e3 [ISSUE #7398] Fix ExportConfigsCommand NPE (#7399) add 959a98120c [ISSUE #7400] Fix getBrokerEpochSubCommand NPE add 0a6ae4605f [ISSUE #7396] Fix wrong word in BrokerController#doResterBrokerAll (#7397) add 4f1b42a7c5 [ISSUE #7410] Handle the Exception when the Proxy requests the client add c36bb78e85 [ISSUE 7313] Enhancement Optimization Method name (#7420) add 84156084a4 [ISSUE #7321] Refector NettyRemotingAbstract with unify future implementation (#7322) add b9ffe0f957 [ISSUE #7296] Add ChannelEventListener for MQClientAPIImpl (#7324) add 3808387e13 [ISSUE #7429] clean channel map when CLIENT_UNREGISTER in proxy add 0027a1486d [ISSUE #7412] Fix pop revive message error when reput checkpoint add b18e564add [ISSUE #7431] Fix flaky test of DLedgerControllerTest#testBrokerLifecycleListener (#7432) add 38d3d5d95d [ISSUE #7433]Update the version in the README.md document to 5.1.4 (#7434) add 4acb43ecee [ISSUE #7330] Add goaway and reconnection mechanism (#7331) add dc3f22ffe9 add getter for class Message ,fix json serialize bug (#7439) add 7e4879a3bc [ISSUE #7441] Fix log "Init the confirmOffset" keep printing error in controller mode (#7442) add 5d492c3382 [ISSUE #7444] Fix testCalculateFileSizeInPath test can not rerun in same environment (#7445) add 28427d4012 [ISSUE #7425] Add RoccketmqControllerConsole log to fix bug (#7458) add dc62d7f2e1 [ISSUE #7451] Override toString for TopicConfigAndQueueMapping add 2113fa371b [ISSUE #7453] Fix the problem in constructing the GetMessageResult (#7456) add f565654351 [ISSUE #7064] [RIP-66-2] Support KV(RocksDB) Storage for ConsumeQueue (#7120) add 0f01df460f [ISSUE 7265] Doc: Adding how to debug in Idea document (#7266) add 3a035d75d7 [ISSUE #7464] Polish the pop logger format (#7465) add d73b601382 [ISSUE #7330] Fix channel connect issue for goaway (#7467) add 82b2f8eefa AddBroker removes parsing configuration from body (#7472) add f0f15b5e21 [ISSUE #7454] Utilizing cache to avoid duplicate parsing (#7455) add dbc633d92b Check the input yaml and the path in ACL (#7475) add 3968c186a5 [ISSUE #7231] Fix: proxy client language error (#7200) add 8f020b397a [ISSUE #7489] Code comment enhancement in example (#7490) add 2043dd5034 [ISSUE #7493] Introduce a new event NettyEventType.ACTIVE (#7494) add 38d267672a Remove getBrokerClusterAclConfig from admin and server (#7486) add f90c55341c [ISSUE #7497] Extract the frequency of calling updateNamesrvAddr into a configuration (#7498) add 91349f30b9 [ISSUE #7437] Add the CRC check of commitlog (#7468) add 48ef5ced46 [ISSUE #7505] Do not validate the length when deleting a topic add 26fa050148 [ISSUE #7501] The broker supports idempotence in creating topics (#7502) add 46962c262c [ISSUE #7523] Message will flush timeout when transientStorePoolEnable=true and flushDiskType=SYNC_FLUSH (#7524) add 00965d8c11 [ISSUE #7531] Clear POP_CK when sending messages (#7532) add ead3d90501 [ISSUE #7511] Lock granularity issue causing LMQ message loss (#7525) add 70dc93abbc Fix tiered store README.md error about Configuration (#7436) add 27759f3556 Fix unstable UtilAllTest#testCalculateFileSizeInPath on Windows (#7419) add 15d32db03b [ISSUE #7547] Let consumer be aware of message queue assignment change (#7548) add 1be5ebc736 [ISSUE #7551] Reuse helper methods from Netty to free direct byte buffer (#7550) add 4791d9a1f1 [ISSUE #5923] Revert "Fix tiered store README.md error about Configuration (#7436)" (#7557) add 651a5ca992 [ISSUE #7562] BugFix for estimating message accumulation correctly (#7563) add 01a2aef96b [ISSUE #7570] Add default value for lastPopTimestamp (#7571) add 8e7e2b5f50 [ISSUE #7574] Fix RunningFlags conflict add 63130f51e8 [ISSUE #7545] [RIP-65] Support efficient random index for massive messages (#7546) add ca721b0145 [ISSUE #7462] Remove deprecated LocalTransactionExecuter (#7463) add a7d493b2fb transactionProducer get the topic route before sending the message (#7569) add 5b43387be3 [ISSUE #7543] Retry topic v2 in pop (#7544) add e955e4399c [ISSUE #7577] SlaveActingMaster Timer Message retry without escape logic (#7578) add 9cfe724e6a Add validation in broker/namesrv configure updating command (#7584) add 430ee0a755 Add validation in broker container configure updating command. (#7587) add a194e1eb9a Add set method for config black list. (#7586) add 56e886bf70 [ISSUE #7592] testCleanBuffer unit test modifies, changed non-direct … (#7593) add 65faea22fd [ISSUE #7534] Use high performance concurrent set to replace copyonwriteset (#7583) add aec1055830 [ISSUE #7585] Support message filtering in rocketmq tiered storage (#7594) add c2c29c2435 [ISSUE #7545] Fix set mapped file to null cause file can not destroy (#7612) add faae64715d [ISSUE #7601] Fix slave acting master bug (#7603) add bcc9db5cba [ISSUE #7614] Fix flaky test RocksDBMessageStoreTest (#7625) add d626d6087d Bump com.squareup.okio:okio-jvm from 3.0.0 to 3.4.0 (#7638) add 1e69e3904f Fix flaky test testSemiSyncReplicaWhenAdaptiveDegradation (#7631) add 9a5690b91a Bump snakeyaml from 1.32 to 2.0 (#7632) add f7a6d0b73a Bump grpc from 1.50.0 to 1.53.0 (#7633) add a376fbcdb8 [ISSUE #7634] Introduce controllableOffset to prevent unnecessary suspension when OFFSET_ILLEGAL (#7635) add 50a92a2474 [ISSUE #7585] Always return duplicate buffer when filter message and fix log format (#7654) add 8e585d8767 [ISSUE #7543] Use "+" as the new separator for retry topic (#7655) add 71a7a659be [ISSUE #7543] only call a single type of retry topic in pop (#7665) add 23ee0eaaef [ISSUE #7646] Optimize pull onException logging (#7647) add 7e1786732c [ISSUE #7626] Topic perm was mistakenly changed to 4 in dledger mode (#7661) add 086a726c5d [ISSUE #7659]Trim property add 80c0330f75 ConfirmOffset directly takes the max offset when allAckInSyncStateSet is false (#7657) add 9dec4cf5fe [ISSUE #7669] map variable delayLevelTable changed to ConcurrentSkipListMap from ConcurrentHashMap (#7675) add 403ad6f66c [ISSUE #7679] Optimize the serialization of RemotingCommand processTimer property (#7683) add c10121697a [ISSUE #7676] use clientDecode for consuming message directly (#7677) add fbfc066695 Bump guava version from 31.1-jre to 32.0.1-jre (#7681) add f0a3e933b9 [ISSUE #7684] Fix iterator.remove() bug (#7682) add 2c898c9b31 [ISSUE #7689] In Controller mode, messages may lost due to sharing the same cq offset (#7690) add 4bb4d78f1d [ISSUE #7686] The bornTime is not set when using the popMessage API in cluster mode. (#7687) add 620e6a2544 [ISSUE #7642] Add return value for sendHeartbeat related method add 59e8f9b66e [ISSUE #7644] Optimize client rebalance add 2c5bc1422b Fix ascii validate for ppv2 tls. (#7703) add 9e4fd0e68a [ISSUE #7697] Fix can't open controller metricsExporter. (#7705) add 806454bc5e [ISSUE #7710] Handle blank string for UtilAll#split to fix the bugs of ACL add 6fce427e10 [ISSUE ##7719] Add more property check for dealy message when auto-batch chack (#7720) add 3f99b1e96b [ISSUE #7707] Refector Context with link node implementation (#7708) add 8a36471a19 [ISSUE #7543] Add enableRetryTopicV2 brokerConfig (#7734) add d2b818d993 Revert "[ISSUE #7707] Refector Context with link node implementation (#7708)" (#7742) add b1d8d306a5 [ISSUE #7699] Add namespace v2 in client (#7700) add 50974adaaa [ISSUE #7658] Fix bug of timer message metrics with setDelayTimeMs add 5e50badca1 [ISSUE #7747] Simplify code checks using Optional in ClientRequestProcessor#getRouteInfoByTopic method (#7748) add 89fdab4d58 [ISSUE #7752] Fix ppv2 tls ascii start with (byte)2 (#7753) add 1242a5873d [ISSUE #7495] Support Higher Java version in Windows (#7507) add 7a36d4d736 [ISSUE #7757] Use `CompositeByteBuf` to prevent memory copy. (#7694) add 646e2a4942 [ISSUE #7355] fix dledger recover abnormally may lost consume queue of tail (#7599) add 920dc32d27 [ISSUE #7760] make timerSkipUnknownError can be set by config file add 6d7513425c [RIP-46] Enhanced metrics for timing and transactional messages (#7500) add 5262358140 [ISSUE #7699] Refector NamespaceRpcHook (#7769) add 92e058c823 [ISSUE #7774] Make the handle of ppv2 tlv more extendable (#7775) add 04eec34978 Get namespace from header (#7782) add 3d357bb3ed [ISSUE #7772] Ensuring broker protection capabilities when POP does not return ACK (#7773) add e104273fd0 [ISSUE #7785] Remove the redundant code add a0cb9d42e3 [ISSUE #7777] Optimize the logic of DefaultRequestProcessor#getTopicsByCluster to avoid unnecessary deserialization (#7778) add 178421386f [ISSUE #7786] Optimize the execution logic of tool.sh in the JRE environment add 8df53dfde8 [ISSUE #7300] jRaft-Controller Implemention (#7301) add 7b64f50137 [ISSUE #7446] Add config of maxFilterMessageSize (#7447) add f70862e57b [ISSUE #5613] Change the broker default value configuration of 'useServerSideResetOffset' (#5613) (#7581) add 06e22b4b42 [ISSUE #7765] Fix unit test testEstimateLag add 84285d13a7 Update copyright year (#7797) add af1936d93a [ISSUE #7715] Update Bazel toolchain to make the CI work (#7714) add 6616600fa5 [ISSUE #7791] Polish the code for jraft controller add c833ff6e9a [ISSUE #7538] fix wrong cachedMsgSize if msg body is changed in consumer callback add cb7fa3e0b0 Revise the measurement method of GROUP_GET_LATENCY to reveal its intended semantics (#7808) add 702bbd2b83 [ISSUE #7803] Add try catch for lock and unlock (#7804) add d9526e7ab2 [ISSUE #7812] Remove reachable flag in brokers' available judgement. add d38558800c [ISSUE #7740] Optimize LocalFileOffsetStore add f525a34f61 [ISSUE #7813] setStartDetectorEnable Not effective add 5e61354fdc [ISSUE #7793] Prepare to release apache rocketmq 5.2.0 add 3acc262ab4 [ISSUE #7822] fix NettyRemotingClient can't connect to IPv6 address. (#7823) add b9688732b4 [maven-release-plugin] prepare release rocketmq-all-5.2.0 No new revisions were added by this update. Summary of changes: .bazelrc | 34 +- .github/ISSUE_TEMPLATE/bug_report.yml | 1 - .github/ISSUE_TEMPLATE/config.yml | 18 + .github/ISSUE_TEMPLATE/doc.yml | 55 ++ .github/ISSUE_TEMPLATE/enhancement_request.yml | 18 + .github/ISSUE_TEMPLATE/feature_request.yml | 18 + .github/asf-deploy-settings.xml | 5 + .github/workflows/bazel.yml | 2 +- .github/workflows/snapshot-automation.yml | 238 +++++++- NOTICE | 2 +- README.md | 8 +- WORKSPACE | 52 +- acl/pom.xml | 15 +- .../rocketmq/acl/plain/PlainAccessResource.java | 24 +- .../rocketmq/acl/plain/PlainPermissionManager.java | 2 +- .../rocketmq/acl/RemotingClientAccessTest.java | 189 ++++++ .../{conf => access_acl_conf}/acl/plain_acl.yml | 29 +- acl/src/test/resources/conf/acl/plain_acl.yml | 1 - bazel/GenTestRules.bzl | 2 + broker/BUILD.bazel | 4 + broker/pom.xml | 2 +- .../apache/rocketmq/broker/BrokerController.java | 238 +++++--- .../rocketmq/broker/BrokerPathConfigHelper.java | 3 + .../broker/client/ClientHousekeepingService.java | 9 +- .../rocketmq/broker/client/ConsumerGroupInfo.java | 17 +- .../client/DefaultConsumerIdsChangeListener.java | 3 +- .../rocketmq/broker/client/ProducerManager.java | 5 +- .../broker/controller/ReplicasManager.java | 42 +- .../broker/dledger/DLedgerRoleChangeHandler.java | 4 +- .../rocketmq/broker/failover/EscapeBridge.java | 4 +- .../filter/ExpressionForRetryMessageFilter.java | 9 +- .../rocketmq/broker/latency/BrokerFastFailure.java | 5 +- .../latency/BrokerFixedThreadPoolExecutor.java | 57 -- .../longpolling/NotifyMessageArrivingListener.java | 3 +- .../broker/longpolling/PopLongPollingService.java | 10 + .../broker/metrics/BrokerMetricsConstant.java | 5 + .../broker/metrics/BrokerMetricsManager.java | 129 ++++- .../broker/metrics/ConsumerLagCalculator.java | 24 +- .../rocketmq/broker/metrics/PopMetricsManager.java | 11 +- .../broker/offset/ConsumerOffsetManager.java | 20 +- .../broker/offset/ConsumerOrderInfoManager.java | 4 +- .../offset/RocksDBConsumerOffsetManager.java | 102 ++++ .../offset/RocksDBLmqConsumerOffsetManager.java | 103 ++++ .../offset/RocksDBOffsetSerializeWrapper.java | 19 +- .../apache/rocketmq/broker/out/BrokerOuterAPI.java | 226 ++++++-- .../broker/plugin/PullMessageResultHandler.java | 3 +- .../broker/processor/AckMessageProcessor.java | 104 ++-- .../broker/processor/AdminBrokerProcessor.java | 175 +++--- .../processor/ChangeInvisibleTimeProcessor.java | 4 +- .../broker/processor/ConsumerManageProcessor.java | 4 +- .../processor/DefaultPullMessageResultHandler.java | 5 +- .../broker/processor/EndTransactionProcessor.java | 18 + .../broker/processor/NotificationProcessor.java | 70 ++- .../broker/processor/PeekMessageProcessor.java | 17 +- .../broker/processor/PopBufferMergeService.java | 21 +- .../broker/processor/PopMessageProcessor.java | 172 ++++-- .../broker/processor/PopReviveService.java | 42 +- .../broker/processor/PullMessageProcessor.java | 9 +- .../broker/processor/ReplyMessageProcessor.java | 2 +- .../broker/processor/SendMessageProcessor.java | 38 +- .../broker/schedule/ScheduleMessageService.java | 30 +- .../rocketmq/broker/slave/SlaveSynchronize.java | 6 +- .../RocksDBLmqSubscriptionGroupManager.java | 46 ++ .../RocksDBSubscriptionGroupManager.java | 112 ++++ .../subscription/SubscriptionGroupManager.java | 59 +- .../broker/topic/RocksDBLmqTopicConfigManager.java | 57 ++ .../broker/topic/RocksDBTopicConfigManager.java | 95 +++ .../rocketmq/broker/topic/TopicConfigManager.java | 145 +++-- .../topic/TopicQueueMappingCleanService.java | 4 +- .../broker/topic/TopicRouteInfoManager.java | 4 +- .../AbstractTransactionalMessageCheckListener.java | 6 +- .../broker/transaction/TransactionMetrics.java | 117 ++-- .../TransactionMetricsFlushService.java | 55 ++ .../transaction/TransactionalMessageService.java | 5 + .../DefaultTransactionalMessageCheckListener.java | 2 + .../queue/TransactionalMessageServiceImpl.java | 23 +- broker/src/main/resources/rmq.broker.logback.xml | 59 +- .../rocketmq/broker/BrokerControllerTest.java | 2 +- .../broker/client/ProducerManagerTest.java | 34 ++ .../broker/latency/BrokerFastFailureTest.java | 1 + .../offset/RocksDBConsumerOffsetManagerTest.java | 113 ++++ .../broker/processor/AdminBrokerProcessorTest.java | 200 ++++--- .../processor/EndTransactionProcessorTest.java | 5 + .../broker/processor/PopMessageProcessorTest.java | 2 +- .../broker/processor/PopReviveServiceTest.java | 4 +- .../ForbiddenTest.java | 3 +- .../subscription/SubscriptionGroupManagerTest.java | 25 + .../topic/RocksdbTopicConfigManagerTest.java | 375 ++++++++++++ .../transaction/queue/TransactionMetricsTest.java | 83 +++ .../util/TransactionalMessageServiceImpl.java | 11 + client/BUILD.bazel | 1 + client/pom.xml | 2 +- .../org/apache/rocketmq/client/ClientConfig.java | 128 +++- .../rocketmq/client/common/ThreadLocalIndex.java | 5 + .../client/consumer/DefaultLitePullConsumer.java | 11 +- .../client/consumer/DefaultMQPullConsumer.java | 14 +- .../client/consumer/DefaultMQPushConsumer.java | 113 ++-- .../rocketmq/client/consumer/MQConsumer.java | 8 +- .../client/consumer/MessageQueueListener.java | 5 +- .../client/consumer/store/ControllableOffset.java | 115 ++++ .../consumer/store/LocalFileOffsetStore.java | 78 ++- .../client/consumer/store/OffsetStore.java | 8 + .../consumer/store/RemoteBrokerOffsetStore.java | 49 +- .../client/hook/ConsumeMessageContext.java | 11 + .../client/impl/ClientRemotingProcessor.java | 2 +- .../apache/rocketmq/client/impl/MQAdminImpl.java | 80 +-- .../rocketmq/client/impl/MQClientAPIImpl.java | 408 +++++++------ .../rocketmq/client/impl/MQClientManager.java | 21 +- .../ConsumeMessageConcurrentlyService.java | 1 + .../consumer/ConsumeMessageOrderlyService.java | 5 +- .../ConsumeMessagePopConcurrentlyService.java | 1 + .../impl/consumer/DefaultLitePullConsumerImpl.java | 9 + .../impl/consumer/DefaultMQPullConsumerImpl.java | 9 + .../impl/consumer/DefaultMQPushConsumerImpl.java | 50 +- .../client/impl/consumer/MQConsumerInner.java | 2 + .../client/impl/consumer/PopProcessQueue.java | 2 +- .../client/impl/consumer/ProcessQueue.java | 25 +- .../client/impl/consumer/PullAPIWrapper.java | 4 +- .../client/impl/consumer/PullMessageService.java | 8 + .../client/impl/consumer/RebalanceImpl.java | 10 +- .../client/impl/consumer/RebalancePushImpl.java | 80 +-- .../client/impl/consumer/RebalanceService.java | 17 +- .../client/impl/factory/MQClientInstance.java | 243 +++++--- .../client/impl/mqclient/MQClientAPIExt.java | 346 ++++++----- .../client/impl/mqclient/MQClientAPIFactory.java | 1 + .../impl/producer/DefaultMQProducerImpl.java | 220 +++++-- .../client/impl/producer/TopicPublishInfo.java | 42 +- .../client/latency/LatencyFaultTolerance.java | 80 ++- .../client/latency/LatencyFaultToleranceImpl.java | 200 +++++-- .../rocketmq/client/latency/MQFaultStrategy.java | 149 +++-- .../apache/rocketmq/client/latency/Resolver.java | 7 +- .../ServiceDetector.java} | 17 +- .../client/producer/DefaultMQProducer.java | 627 +++++++++++++------- .../rocketmq/client/producer/MQProducer.java | 27 +- .../client/producer/ProduceAccumulator.java | 510 ++++++++++++++++ .../client/producer/TransactionMQProducer.java | 39 +- .../rocketmq/client/rpchook/NamespaceRpcHook.java | 46 ++ .../apache/rocketmq/client/trace/TraceContext.java | 10 + .../rocketmq/client/trace/TraceDataEncoder.java | 9 +- .../trace/hook/ConsumeMessageTraceHookImpl.java | 1 + .../client/common/ThreadLocalIndexTest.java | 7 + .../consumer/store/LocalFileOffsetStoreTest.java | 47 +- .../store/RemoteBrokerOffsetStoreTest.java | 32 + .../rocketmq/client/impl/MQClientAPIImplTest.java | 47 +- .../latency/LatencyFaultToleranceImplTest.java | 36 +- .../client/producer/DefaultMQProducerTest.java | 38 +- .../client/producer/ProduceAccumulatorTest.java | 176 ++++++ .../client/rpchook/NamespaceRpcHookTest.java | 56 ++ .../trace/DefaultMQConsumerWithTraceTest.java | 2 +- .../trace/DefaultMQProducerWithTraceTest.java | 2 +- .../client/trace/TraceDataEncoderTest.java | 2 + .../trace/TransactionMQProducerWithTraceTest.java | 2 +- common/BUILD.bazel | 2 + common/pom.xml | 10 +- .../org/apache/rocketmq/common/BrokerConfig.java | 144 ++++- .../org/apache/rocketmq/common/ConfigManager.java | 31 +- .../apache/rocketmq/common/ControllerConfig.java | 64 +- .../org/apache/rocketmq/common/JraftConfig.java | 88 +++ .../org/apache/rocketmq/common/KeyBuilder.java | 49 +- .../java/org/apache/rocketmq/common/MQVersion.java | 2 +- .../java/org/apache/rocketmq/common/MixAll.java | 8 +- .../main/java/org/apache/rocketmq/common/Pair.java | 4 +- .../java/org/apache/rocketmq/common/UtilAll.java | 82 +-- .../apache/rocketmq/common/attribute/CQType.java | 3 +- .../common/attribute/TopicMessageType.java | 5 +- .../common/config/AbstractRocksDBStorage.java | 507 ++++++++++++++++ .../common/config/ConfigRocksDBStorage.java | 256 ++++++++ .../common/config/RocksDBConfigManager.java | 117 ++++ .../rocketmq/common/constant/HAProxyConstants.java | 27 +- .../rocketmq/common/constant/LoggerName.java | 2 + .../apache/rocketmq/common/constant/PermName.java | 2 +- .../rocketmq/common/consumer/ReceiptHandle.java | 11 +- .../apache/rocketmq/common/message/Message.java | 24 +- .../rocketmq/common/message/MessageAccessor.java | 7 + .../rocketmq/common/message/MessageBatch.java | 2 +- .../rocketmq/common/message/MessageConst.java | 2 + .../rocketmq/common/message/MessageDecoder.java | 32 +- .../common/message/MessageExtBrokerInner.java | 32 + .../NopObservableDoubleGauge.java} | 7 +- .../rocketmq/common/namesrv/NamesrvConfig.java | 31 + .../CQType.java => state/StateEventListener.java} | 7 +- .../thread/FutureTaskExtThreadPoolExecutor.java | 3 +- .../rocketmq/common/thread/ThreadPoolMonitor.java | 6 +- .../rocketmq/common/topic/TopicValidator.java | 2 + .../apache/rocketmq/common/utils/BinaryUtil.java | 17 + .../common/utils/ConcurrentHashMapUtils.java | 16 +- .../rocketmq/common/utils/DataConverter.java | 2 +- .../apache/rocketmq/common/utils/MessageUtils.java | 48 ++ .../apache/rocketmq/common/utils/ThreadUtils.java | 74 ++- .../org/apache/rocketmq/common/KeyBuilderTest.java | 63 ++ .../rocketmq/common/MessageExtBrokerInnerTest.java | 93 +++ .../org/apache/rocketmq/common/MixAllTest.java | 6 - .../apache/rocketmq/common/NetworkUtilTest.java | 2 - .../org/apache/rocketmq/common/UtilAllTest.java | 37 +- .../common/utils/ConcurrentHashMapUtilsTest.java | 1 - container/pom.xml | 2 +- .../apache/rocketmq/container/BrokerContainer.java | 8 +- .../rocketmq/container/BrokerContainerConfig.java | 29 + .../container/BrokerContainerProcessor.java | 49 +- .../ContainerClientHouseKeepingService.java | 11 +- controller/BUILD.bazel | 6 +- controller/pom.xml | 10 +- .../controller/BrokerHeartbeatManager.java | 18 +- .../controller/BrokerHousekeepingService.java | 5 + .../rocketmq/controller/ControllerManager.java | 106 ++-- .../rocketmq/controller/ControllerStartup.java | 12 +- .../rocketmq/controller/elect/ElectPolicy.java | 4 +- .../controller/elect/impl/DefaultElectPolicy.java | 10 +- .../controller/impl/DLedgerController.java | 14 +- .../impl/DLedgerControllerStateMachine.java | 3 +- .../rocketmq/controller/impl/JRaftController.java | 279 +++++++++ .../impl/JRaftControllerStateMachine.java | 331 +++++++++++ .../controller/impl/closure/ControllerClosure.java | 83 +++ .../controller/impl/event/ApplyBrokerIdEvent.java | 15 +- .../impl/event/CleanBrokerDataEvent.java | 6 +- .../controller/impl/event/ElectMasterEvent.java | 8 +- .../controller/impl/event/ListEventSerializer.java | 128 ++++ .../impl/event/UpdateBrokerAddressEvent.java | 10 +- .../impl/heartbeat/BrokerIdentityInfo.java | 17 +- .../controller/impl/heartbeat/BrokerLiveInfo.java | 7 +- .../heartbeat/DefaultBrokerHeartbeatManager.java | 5 +- .../impl/heartbeat/RaftBrokerHeartBeatManager.java | 278 +++++++++ .../controller/impl/manager/BrokerReplicaInfo.java | 19 +- .../impl/manager/RaftReplicasInfoManager.java | 236 ++++++++ .../impl/manager/ReplicasInfoManager.java | 164 +++++- .../controller/impl/manager/SyncStateInfo.java | 3 +- .../impl/task/BrokerCloseChannelRequest.java | 69 +++ .../impl/task/BrokerCloseChannelResponse.java | 17 +- .../impl/task/CheckNotActiveBrokerRequest.java | 31 +- .../impl/task/CheckNotActiveBrokerResponse.java | 17 +- .../impl/task/GetBrokerLiveInfoRequest.java | 66 +++ .../impl/task/GetBrokerLiveInfoResponse.java | 17 +- .../impl/task/GetSyncStateDataRequest.java | 25 +- .../impl/task/RaftBrokerHeartBeatEventRequest.java | 100 ++++ .../task/RaftBrokerHeartBeatEventResponse.java | 17 +- .../metrics/ControllerMetricsConstant.java | 2 +- .../metrics/ControllerMetricsManager.java | 40 +- .../processor/ControllerRequestProcessor.java | 35 +- .../src/main/resources/rmq.controller.logback.xml | 58 +- .../rocketmq/controller/ControllerManagerTest.java | 32 +- .../controller/ControllerRequestProcessorTest.java | 28 +- .../controller/impl/DLedgerControllerTest.java | 50 +- .../impl/DefaultBrokerHeartbeatManagerTest.java | 9 +- .../impl/manager/ReplicasInfoManagerTest.java | 85 ++- distribution/bin/mqbroker | 4 +- distribution/bin/runbroker.cmd | 38 +- distribution/bin/runbroker.sh | 1 - distribution/bin/runserver.cmd | 32 +- distribution/bin/runserver.sh | 2 +- distribution/bin/tools.sh | 8 +- distribution/pom.xml | 6 +- docs/cn/Debug_In_Idea.md | 55 ++ docs/cn/concept.md | 2 +- docs/cn/controller/design.md | 2 +- docs/cn/image/Idea_config_broker.png | Bin 0 -> 215173 bytes docs/cn/image/Idea_config_nameserver.png | Bin 0 -> 204631 bytes docs/cn/msg_trace/user_guide.md | 2 +- docs/cn/operation.md | 4 +- docs/en/Debug_In_Idea.md | 55 ++ example/pom.xml | 2 +- .../example/benchmark/TransactionProducer.java | 1 - .../example/namespace/ProducerWithNamespace.java | 3 +- .../namespace/PullConsumerWithNamespace.java | 3 +- .../namespace/PushConsumerWithNamespace.java | 3 +- .../rocketmq/example/quickstart/Consumer.java | 2 +- .../rocketmq/example/quickstart/Producer.java | 4 +- .../rocketmq/example/simple/PullConsumer.java | 2 +- .../example/tracemessage/TraceProducer.java | 2 +- .../example/tracemessage/TracePushConsumer.java | 2 +- .../example/transaction/TransactionProducer.java | 3 +- filter/pom.xml | 2 +- namesrv/pom.xml | 2 +- .../apache/rocketmq/namesrv/NamesrvController.java | 22 +- .../apache/rocketmq/namesrv/NamesrvStartup.java | 4 + .../namesrv/processor/ClientRequestProcessor.java | 5 +- .../namesrv/processor/DefaultRequestProcessor.java | 71 ++- .../routeinfo/BrokerHousekeepingService.java | 5 + .../namesrv/routeinfo/RouteInfoManager.java | 70 ++- .../namesrv/processor/RequestProcessorTest.java | 15 +- .../namesrv/routeinfo/RouteInfoManagerNewTest.java | 100 +++- openmessaging/pom.xml | 2 +- pom.xml | 59 +- proxy/BUILD.bazel | 5 + proxy/pom.xml | 6 +- .../org/apache/rocketmq/proxy/ProxyStartup.java | 18 +- .../rocketmq/proxy/common/ContextVariable.java | 2 +- .../proxy/common/MessageReceiptHandle.java | 8 +- .../apache/rocketmq/proxy/common/ProxyContext.java | 9 + .../rocketmq/proxy/common/ReceiptHandleGroup.java | 107 +++- .../proxy/common/ReceiptHandleGroupKey.java | 55 +- .../apache/rocketmq/proxy/common/RenewEvent.java | 64 ++ .../apache/rocketmq/proxy/config/ProxyConfig.java | 134 ++++- .../org/apache/rocketmq/proxy/grpc/GrpcServer.java | 10 +- .../rocketmq/proxy/grpc/GrpcServerBuilder.java | 24 +- .../proxy/grpc/OptionalSSLProtocolNegotiator.java | 145 ----- .../proxy/grpc/ProxyAndTlsProtocolNegotiator.java | 265 +++++++++ .../proxy/grpc/constant/AttributeKeys.java | 44 ++ .../proxy/grpc/interceptor/HeaderInterceptor.java | 32 +- .../proxy/grpc/v2/ContextStreamObserver.java | 14 +- .../proxy/grpc/v2/DefaultGrpcMessingActivity.java | 17 +- .../proxy/grpc/v2/GrpcMessagingApplication.java | 9 +- .../proxy/grpc/v2/GrpcMessingActivity.java | 2 +- .../proxy/grpc/v2/channel/GrpcChannelManager.java | 6 +- .../proxy/grpc/v2/client/ClientActivity.java | 32 +- .../grpc/v2/common/GrpcClientSettingsManager.java | 30 +- .../proxy/grpc/v2/common/GrpcConverter.java | 4 - .../proxy/grpc/v2/common/GrpcValidator.java | 4 +- .../proxy/grpc/v2/common/ResponseBuilder.java | 2 +- .../proxy/grpc/v2/consumer/AckMessageActivity.java | 143 +++-- .../consumer/ChangeInvisibleDurationActivity.java | 11 +- .../grpc/v2/consumer/ReceiveMessageActivity.java | 12 +- .../ReceiveMessageResponseStreamWriter.java | 4 +- .../v2/producer/ForwardMessageToDLQActivity.java | 14 +- .../grpc/v2/producer/SendMessageActivity.java | 9 +- .../proxy/grpc/v2/route/RouteActivity.java | 29 +- .../v2/transaction/EndTransactionActivity.java | 3 +- .../proxy/metrics/ProxyMetricsManager.java | 11 +- .../proxy/processor/AbstractProcessor.java | 4 +- .../rocketmq/proxy/processor/BatchAckResult.java | 53 ++ .../rocketmq/proxy/processor/ClientProcessor.java | 2 +- .../proxy/processor/ConsumerProcessor.java | 172 ++++-- .../proxy/processor/DefaultMessagingProcessor.java | 44 +- .../proxy/processor/MessagingProcessor.java | 26 +- .../proxy/processor/ProducerProcessor.java | 18 +- .../proxy/processor/ReceiptHandleProcessor.java | 345 +---------- .../DefaultTopicMessageTypeValidator.java | 7 +- .../validator/TopicMessageTypeValidator.java | 6 +- .../proxy/remoting/ClientHousekeepingService.java | 4 + .../remoting/MultiProtocolRemotingServer.java | 9 +- .../proxy/remoting/RemotingProtocolServer.java | 41 +- .../activity/AbstractRemotingActivity.java | 16 +- .../remoting/activity/ClientManagerActivity.java | 36 +- .../remoting/activity/ConsumerManagerActivity.java | 4 +- .../remoting/activity/PullMessageActivity.java | 2 +- .../proxy/remoting/channel/RemotingChannel.java | 23 +- .../remoting/channel/RemotingChannelManager.java | 9 +- .../http2proxy/HAProxyMessageForwarder.java | 136 +++++ .../http2proxy/Http2ProtocolProxyHandler.java | 27 +- .../http2proxy/Http2ProxyBackendHandler.java | 2 + .../http2proxy/Http2ProxyFrontendHandler.java | 28 +- .../proxy/service/ClusterServiceManager.java | 12 +- .../proxy/service/LocalServiceManager.java | 4 +- .../service/message/ClusterMessageService.java | 16 +- .../proxy/service/message/LocalMessageService.java | 76 ++- .../service/message/LocalRemotingCommand.java | 9 +- .../proxy/service/message/MessageService.java | 8 + .../service/message/ReceiptHandleMessage.java | 26 +- .../service/metadata/ClusterMetadataService.java | 6 +- .../receipt/DefaultReceiptHandleManager.java} | 225 +++----- .../service/receipt/ReceiptHandleManager.java | 15 +- .../service/route/LocalTopicRouteService.java | 2 +- .../proxy/service/route/MessageQueueSelector.java | 95 ++- .../proxy/service/route/MessageQueueView.java | 9 +- .../proxy/service/route/TopicRouteService.java | 163 ++++-- .../sysmessage/AbstractSystemMessageSyncer.java | 2 +- .../proxy/service/sysmessage/HeartbeatSyncer.java | 31 +- proxy/src/main/resources/rmq.proxy.logback.xml | 5 + .../proxy/common/ReceiptHandleGroupTest.java | 73 ++- .../proxy/common/utils/FilterUtilTest.java | 25 + .../grpc/ProxyAndTlsProtocolNegotiatorTest.java | 49 ++ .../proxy/grpc/v2/client/ClientActivityTest.java | 16 +- .../v2/common/GrpcClientSettingsManagerTest.java | 8 +- .../grpc/v2/consumer/AckMessageActivityTest.java | 223 ++++++- .../ChangeInvisibleDurationActivityTest.java | 4 +- .../v2/consumer/ReceiveMessageActivityTest.java | 12 +- .../producer/ForwardMessageToDLQActivityTest.java | 4 +- .../grpc/v2/producer/SendMessageActivityTest.java | 82 ++- .../proxy/processor/BaseProcessorTest.java | 18 +- .../proxy/processor/ConsumerProcessorTest.java | 122 +++- .../proxy/processor/ProducerProcessorTest.java | 3 +- .../activity/AbstractRemotingActivityTest.java | 10 +- .../remoting/activity/PullMessageActivityTest.java | 10 +- .../remoting/activity/SendMessageActivityTest.java | 2 +- .../channel/RemotingChannelManagerTest.java | 30 +- .../http2proxy/HAProxyMessageForwarderTest.java | 47 ++ .../http2proxy/Http2ProtocolProxyHandlerTest.java | 61 ++ .../rocketmq/proxy/service/BaseServiceTest.java | 4 +- .../service/message/LocalMessageServiceTest.java | 4 +- .../proxy/service/mqclient/MQClientAPIExtTest.java | 109 ++-- .../receipt/DefaultReceiptHandleManagerTest.java} | 413 ++++--------- .../service/route/MessageQueueSelectorTest.java | 8 +- .../service/sysmessage/HeartbeatSyncerTest.java | 70 ++- .../transaction/ClusterTransactionServiceTest.java | 8 +- remoting/BUILD.bazel | 2 + remoting/pom.xml | 2 +- .../rocketmq/remoting/ChannelEventListener.java | 2 + .../apache/rocketmq/remoting/InvokeCallback.java | 15 + .../apache/rocketmq/remoting/RemotingClient.java | 27 +- .../rocketmq/remoting/common/RemotingHelper.java | 49 +- .../remoting/metrics/RemotingMetricsConstant.java | 1 - .../remoting/metrics/RemotingMetricsManager.java | 10 +- .../rocketmq/remoting/netty/AttributeKeys.java | 54 ++ .../rocketmq/remoting/netty/FileRegionEncoder.java | 20 +- .../rocketmq/remoting/netty/NettyClientConfig.java | 30 + .../rocketmq/remoting/netty/NettyEventType.java | 3 +- .../remoting/netty/NettyRemotingAbstract.java | 142 +++-- .../remoting/netty/NettyRemotingClient.java | 258 +++++++-- .../remoting/netty/NettyRemotingServer.java | 139 ++++- .../rocketmq/remoting/netty/NettyServerConfig.java | 19 + .../rocketmq/remoting/netty/ResponseFuture.java | 15 + .../rocketmq/remoting/protocol/LanguageCode.java | 11 + .../remoting/protocol/RemotingCommand.java | 20 +- .../rocketmq/remoting/protocol/RequestCode.java | 13 +- .../rocketmq/remoting/protocol/ResponseCode.java | 6 + .../protocol/body/LockBatchRequestBody.java | 11 + .../rocketmq/remoting/protocol/body/TopicList.java | 4 +- .../protocol/body/UnlockBatchRequestBody.java | 11 + .../remoting/protocol/filter/FilterAPI.java | 8 + .../header/CloneGroupOffsetRequestHeader.java | 4 +- .../ConsumeMessageDirectlyResultRequestHeader.java | 4 +- .../protocol/header/CreateTopicRequestHeader.java | 4 +- .../DeleteSubscriptionGroupRequestHeader.java | 4 +- .../protocol/header/DeleteTopicRequestHeader.java | 4 +- .../remoting/protocol/header/ExtraInfoUtil.java | 70 ++- .../GetBrokerClusterAclConfigResponseBody.java | 45 -- .../GetBrokerClusterAclConfigResponseHeader.java | 42 -- .../header/GetConsumeStatsRequestHeader.java | 4 +- .../GetConsumerConnectionListRequestHeader.java | 4 +- .../GetConsumerListByGroupRequestHeader.java | 4 +- .../GetConsumerRunningInfoRequestHeader.java | 4 +- .../header/GetConsumerStatusRequestHeader.java | 4 +- .../GetProducerConnectionListRequestHeader.java | 4 +- .../GetSubscriptionGroupConfigRequestHeader.java | 4 +- ...uestHeader.java => HeartbeatRequestHeader.java} | 16 +- .../header/InitConsumerOffsetRequestHeader.java | 4 +- .../protocol/header/LockBatchMqRequestHeader.java | 14 +- .../protocol/header/NotificationRequestHeader.java | 14 + .../NotifyConsumerIdsChangedRequestHeader.java | 4 +- .../header/QueryConsumeQueueRequestHeader.java | 8 +- .../header/QueryConsumeTimeSpanRequestHeader.java | 4 +- .../header/QueryConsumerOffsetRequestHeader.java | 11 + .../header/QueryCorrectionOffsetHeader.java | 4 +- .../protocol/header/QueryMessageRequestHeader.java | 4 +- .../QuerySubscriptionByConsumerRequestHeader.java | 4 +- .../QueryTopicConsumeByWhoRequestHeader.java | 4 +- .../header/QueryTopicsByConsumerRequestHeader.java | 4 +- .../protocol/header/ReplyMessageRequestHeader.java | 4 +- .../protocol/header/ResetOffsetRequestHeader.java | 8 +- .../protocol/header/SearchOffsetRequestHeader.java | 13 + .../header/SendMessageRequestHeaderV2.java | 39 +- .../header/StatisticsMessagesRequestHeader.java | 8 +- .../header/UnlockBatchMqRequestHeader.java | 14 +- .../header/UnregisterClientRequestHeader.java | 4 +- .../header/UpdateGroupForbiddenRequestHeader.java | 4 +- .../controller/AlterSyncStateSetRequestHeader.java | 9 + .../controller/ElectMasterRequestHeader.java | 16 +- .../CleanControllerBrokerDataRequestHeader.java | 9 + .../RegisterBrokerToControllerRequestHeader.java | 11 + .../DeleteTopicFromNamesrvRequestHeader.java | 4 +- .../header/namesrv/GetRouteInfoRequestHeader.java | 4 +- .../header/namesrv/RegisterTopicRequestHeader.java | 4 +- .../statictopic/TopicConfigAndQueueMapping.java | 10 + .../rocketmq/remoting/rpc/RequestBuilder.java | 8 +- .../rocketmq/remoting/rpc/RpcClientImpl.java | 31 +- .../rocketmq/remoting/rpc/RpcRequestHeader.java | 63 +- .../rocketmq/remoting/ProxyProtocolTest.java | 116 ++++ .../rocketmq/remoting/RemotingServerTest.java | 22 +- .../java/org/apache/rocketmq/remoting/TlsTest.java | 42 +- .../remoting/netty/FileRegionEncoderTest.java | 5 +- .../rocketmq/remoting/netty/MockChannel.java} | 14 +- .../remoting/netty/MockChannelPromise.java | 191 ++++++ .../remoting/netty/NettyRemotingAbstractTest.java | 54 +- .../remoting/netty/NettyRemotingClientTest.java | 243 +++++++- .../remoting/netty/NettyRemotingServerTest.java | 63 ++ .../protocol/header/ExtraInfoUtilTest.java | 4 +- .../protocol/header/FastCodesHeaderTest.java | 2 +- .../header/SendMessageRequestHeaderV2Test.java | 51 ++ .../remoting/rpc/RpcRequestHeaderTest.java | 64 ++ srvutil/pom.xml | 2 +- .../org/apache/rocketmq/srvutil/ServerUtil.java | 1 + store/BUILD.bazel | 8 +- store/pom.xml | 6 +- .../rocketmq/store/AllocateMappedFileService.java | 6 +- .../java/org/apache/rocketmq/store/CommitLog.java | 310 ++++++++-- .../apache/rocketmq/store/CommitLogDispatcher.java | 5 +- .../org/apache/rocketmq/store/ConsumeQueue.java | 137 +---- .../apache/rocketmq/store/DefaultMessageStore.java | 325 ++++++----- .../org/apache/rocketmq/store/MappedFileQueue.java | 49 +- .../apache/rocketmq/store/MessageExtEncoder.java | 140 ++++- .../org/apache/rocketmq/store/MessageStore.java | 70 ++- .../org/apache/rocketmq/store/MultiDispatch.java | 77 +++ .../rocketmq/store/MultiPathMappedFileQueue.java | 4 +- .../apache/rocketmq/store/RocksDBMessageStore.java | 181 ++++++ .../org/apache/rocketmq/store/RunningFlags.java | 22 +- .../{CommitLogDispatcher.java => StoreType.java} | 22 +- .../org/apache/rocketmq/store/TopicQueueLock.java | 8 + .../apache/rocketmq/store/TransientStorePool.java | 13 +- .../rocketmq/store/config/MessageStoreConfig.java | 115 +++- .../rocketmq/store/dledger/DLedgerCommitLog.java | 195 ++++++- .../org/apache/rocketmq/store/ha/HAService.java | 3 +- .../store/ha/autoswitch/AutoSwitchHAClient.java | 2 +- .../store/ha/autoswitch/AutoSwitchHAService.java | 64 +- .../apache/rocketmq/store/kv/CompactionStore.java | 21 +- .../apache/rocketmq/store/kv/MessageFetcher.java | 3 +- .../store/metrics/DefaultStoreMetricsConstant.java | 12 + .../store/metrics/DefaultStoreMetricsManager.java | 67 ++- .../store/metrics/RocksDBStoreMetricsManager.java | 154 +++++ .../store/plugin/AbstractPluginMessageStore.java | 46 +- .../store/queue/AbstractConsumeQueueStore.java | 115 ++++ .../rocketmq/store/queue/BatchConsumeQueue.java | 57 +- .../store/queue/ConsumeQueueInterface.java | 38 +- .../rocketmq/store/queue/ConsumeQueueStore.java | 373 ++++++------ .../store/queue/ConsumeQueueStoreInterface.java | 303 ++++++++++ .../rocketmq/store/queue/MultiDispatchUtils.java | 61 ++ .../rocketmq/store/queue/QueueOffsetOperator.java | 14 +- .../rocketmq/store/queue/RocksDBConsumeQueue.java | 395 +++++++++++++ .../queue/RocksDBConsumeQueueOffsetTable.java | 641 +++++++++++++++++++++ .../store/queue/RocksDBConsumeQueueStore.java | 445 ++++++++++++++ .../store/queue/RocksDBConsumeQueueTable.java | 312 ++++++++++ .../rocketmq/store/queue/SparseConsumeQueue.java | 3 +- .../ConsumeQueueCompactionFilterFactory.java | 47 ++ .../store/rocksdb/ConsumeQueueRocksDBStorage.java | 133 +++++ .../store/rocksdb/RocksDBOptionsFactory.java | 161 ++++++ .../rocketmq/store/stats/BrokerStatsManager.java | 14 +- .../java/org/apache/rocketmq/store/timer/Slot.java | 10 +- .../rocketmq/store/timer/TimerMessageStore.java | 116 ++-- .../apache/rocketmq/store/timer/TimerMetrics.java | 5 +- .../apache/rocketmq/store/timer/TimerRequest.java | 7 +- .../apache/rocketmq/store/AppendCallbackTest.java | 6 +- .../apache/rocketmq/store/AppendPropCRCTest.java | 201 +++++++ .../apache/rocketmq/store/BatchPutMessageTest.java | 2 +- .../rocketmq/store/DefaultMessageStoreTest.java | 5 +- .../java/org/apache/rocketmq/store/HATest.java | 15 +- .../apache/rocketmq/store/MappedFileQueueTest.java | 15 + .../rocketmq/store/MessageExtBrokerInnerTest.java | 105 ++++ .../apache/rocketmq/store/MultiDispatchTest.java | 16 +- ...StoreTest.java => RocksDBMessageStoreTest.java} | 361 ++++++++---- .../org/apache/rocketmq/store/StoreTestUtil.java | 9 +- .../store/dledger/DLedgerCommitlogTest.java | 40 ++ .../org/apache/rocketmq/store/ha/HAServerTest.java | 16 +- .../store/ha/autoswitch/AutoSwitchHATest.java | 5 +- .../rocketmq/store/kv/CompactionLogTest.java | 2 +- .../store/timer/TimerMessageStoreTest.java | 6 +- .../rocketmq/store/timer/TimerMetricsTest.java | 10 +- style/spotbugs-suppressions.xml | 2 +- test/BUILD.bazel | 8 +- test/pom.xml | 2 +- .../rocketmq/test/client/rmq/RMQPopClient.java | 22 + .../rocketmq/test/util/MQAdminTestUtils.java | 37 ++ .../org/apache/rocketmq/test/util/StatUtil.java | 1 - .../balance/NormalMsgDynamicBalanceIT.java | 17 + .../test/client/consumer/pop/BasePopNormally.java | 6 + .../test/client/consumer/pop/BatchAckIT.java | 159 +++++ .../consumer/pop/PopMessageAndForwardingIT.java | 102 ++++ .../test/container/PopSlaveActingMasterIT.java | 12 +- .../dledger/DLedgerProduceAndConsumeIT.java | 2 +- .../rocketmq/test/offset/LagCalculationIT.java | 9 +- .../test/route/CreateAndUpdateTopicIT.java | 145 +++++ .../api/client.producer.DefaultMQProducer.schema | 1 - tieredstore/BUILD.bazel | 4 + tieredstore/pom.xml | 16 +- .../rocketmq/tieredstore/MessageStoreFetcher.java | 80 +++ .../rocketmq/tieredstore/TieredDispatcher.java | 74 ++- .../rocketmq/tieredstore/TieredMessageFetcher.java | 542 +++++++++-------- .../rocketmq/tieredstore/TieredMessageStore.java | 127 ++-- .../tieredstore/common/GetMessageResultExt.java | 75 +++ .../{BoundaryType.java => SelectBufferResult.java} | 46 +- ...Wrapper.java => SelectBufferResultWrapper.java} | 53 +- .../common/TieredMessageStoreConfig.java | 9 + .../tieredstore/common/TieredStoreExecutor.java | 39 +- .../rocketmq/tieredstore/file/CompositeAccess.java | 2 +- .../tieredstore/file/CompositeFlatFile.java | 51 +- .../tieredstore/file/CompositeQueueFlatFile.java | 49 +- .../rocketmq/tieredstore/file/TieredCommitLog.java | 56 +- .../tieredstore/file/TieredConsumeQueue.java | 2 +- .../rocketmq/tieredstore/file/TieredFlatFile.java | 102 ++-- .../tieredstore/file/TieredFlatFileManager.java | 199 ++++--- .../rocketmq/tieredstore/file/TieredIndexFile.java | 439 -------------- .../rocketmq/tieredstore/index/IndexFile.java | 21 +- .../rocketmq/tieredstore/index/IndexItem.java | 114 ++++ .../rocketmq/tieredstore/index/IndexService.java | 62 ++ .../rocketmq/tieredstore/index/IndexStoreFile.java | 497 ++++++++++++++++ .../tieredstore/index/IndexStoreService.java | 372 ++++++++++++ .../tieredstore/metadata/FileSegmentMetadata.java | 26 +- .../metrics/TieredStoreMetricsConstant.java | 1 + .../metrics/TieredStoreMetricsManager.java | 29 +- .../tieredstore/provider/TieredFileSegment.java | 302 ++++++---- .../tieredstore/provider/TieredStoreProvider.java | 16 +- .../provider/TieredStoreTopicBlackListFilter.java | 30 +- .../provider/TieredStoreTopicFilter.java | 10 +- .../provider/posix/PosixFileSegment.java | 22 +- .../CommitLogInputStream.java} | 33 +- .../FileSegmentInputStream.java} | 49 +- .../FileSegmentInputStreamFactory.java} | 26 +- .../tieredstore/util/MessageBufferUtil.java | 71 ++- .../rocketmq/tieredstore/TieredDispatcherTest.java | 15 +- .../tieredstore/TieredMessageFetcherTest.java | 44 +- .../tieredstore/TieredMessageStoreTest.java | 21 +- .../common/GetMessageResultExtTest.java | 65 +++ .../tieredstore/common/SelectBufferResultTest.java | 37 +- .../file/CompositeQueueFlatFileTest.java | 8 +- .../tieredstore/file/TieredCommitLogTest.java | 108 ++++ .../file/TieredFlatFileManagerTest.java | 7 +- .../tieredstore/file/TieredFlatFileTest.java | 48 +- .../tieredstore/file/TieredIndexFileTest.java | 137 ----- .../rocketmq/tieredstore/index/IndexItemTest.java | 91 +++ .../tieredstore/index/IndexStoreFileTest.java | 282 +++++++++ .../index/IndexStoreServiceBenchTest.java | 147 +++++ .../tieredstore/index/IndexStoreServiceTest.java | 313 ++++++++++ .../metrics/TieredStoreMetricsManagerTest.java | 4 +- ...Stream.java => MockFileSegmentInputStream.java} | 8 +- .../provider/TieredFileSegmentInputStreamTest.java | 24 +- .../provider/TieredFileSegmentTest.java | 89 ++- .../TieredStoreTopicBlackListFilterTest.java | 27 +- .../provider/memory/MemoryFileSegment.java | 27 +- .../memory/MemoryFileSegmentWithoutCheck.java | 4 +- .../tieredstore/util/MessageBufferUtilTest.java | 22 +- .../src/test/resources/rmq.logback-test.xml | 17 +- tools/BUILD.bazel | 1 + tools/pom.xml | 2 +- .../rocketmq/tools/admin/DefaultMQAdminExt.java | 16 +- .../tools/admin/DefaultMQAdminExtImpl.java | 19 +- .../apache/rocketmq/tools/admin/MQAdminExt.java | 4 - .../rocketmq/tools/command/MQAdminStartup.java | 6 +- .../acl/ClusterAclConfigVersionListSubCommand.java | 2 +- .../command/acl/DeleteAccessConfigSubCommand.java | 2 +- .../command/acl/GetAccessConfigSubCommand.java | 132 ----- .../command/acl/UpdateAccessConfigSubCommand.java | 2 +- .../acl/UpdateGlobalWhiteAddrSubCommand.java | 2 +- .../broker/BrokerConsumeStatsSubCommad.java | 2 +- .../command/broker/BrokerStatusSubCommand.java | 2 +- .../broker/CommitLogSetReadAheadSubCommand.java | 2 +- .../broker/DeleteExpiredCommitLogSubCommand.java | 2 +- .../command/broker/GetBrokerConfigCommand.java | 2 +- .../command/broker/GetBrokerEpochSubCommand.java | 2 +- .../broker/GetColdDataFlowCtrInfoSubCommand.java | 2 +- ...RemoveColdDataFlowCtrGroupConfigSubCommand.java | 2 +- .../broker/ResetMasterFlushOffsetSubCommand.java | 2 +- .../broker/UpdateBrokerConfigSubCommand.java | 2 +- ...UpdateColdDataFlowCtrGroupConfigSubCommand.java | 2 +- .../command/cluster/CLusterSendMsgRTCommand.java | 2 +- .../command/cluster/ClusterListSubCommand.java | 2 +- .../connection/ConsumerConnectionSubCommand.java | 2 +- .../connection/ProducerConnectionSubCommand.java | 2 +- .../consumer/ConsumerProgressSubCommand.java | 5 +- .../command/consumer/ConsumerStatusSubCommand.java | 2 +- .../consumer/GetConsumerConfigSubCommand.java | 2 +- .../consumer/StartMonitoringSubCommand.java | 2 +- .../command/consumer/UpdateSubGroupSubCommand.java | 2 +- .../command/container/AddBrokerSubCommand.java | 2 +- .../command/container/RemoveBrokerSubCommand.java | 2 +- .../CleanControllerBrokerMetaSubCommand.java | 2 +- .../GetControllerMetaDataSubCommand.java | 2 +- .../controller/ReElectMasterSubCommand.java | 2 +- .../tools/command/export/ExportConfigsCommand.java | 44 +- .../command/export/ExportMetadataCommand.java | 2 +- .../export/ExportMetadataInRocksDBCommand.java | 138 +++++ .../tools/command/export/ExportMetricsCommand.java | 2 +- .../command/ha/GetSyncStateSetSubCommand.java | 2 +- .../tools/command/ha/HAStatusSubCommand.java | 2 +- .../command/message/CheckMsgSendRTCommand.java | 2 +- .../command/message/ConsumeMessageCommand.java | 2 +- .../command/message/DumpCompactionLogCommand.java | 2 +- .../message/PrintMessageByQueueCommand.java | 2 +- .../command/message/PrintMessageSubCommand.java | 2 +- .../command/message/QueryMsgByIdSubCommand.java | 2 +- .../command/message/QueryMsgByKeySubCommand.java | 2 +- .../message/QueryMsgByOffsetSubCommand.java | 2 +- .../message/QueryMsgByUniqueKeySubCommand.java | 2 +- .../message/QueryMsgTraceByIdSubCommand.java | 2 +- .../tools/command/message/SendMessageCommand.java | 2 +- .../metadata/RocksDBConfigToJsonCommand.java | 118 ++++ .../command/namesrv/AddWritePermSubCommand.java | 2 +- .../command/namesrv/WipeWritePermSubCommand.java | 2 +- .../command/offset/SkipAccumulationSubCommand.java | 2 +- .../tools/command/stats/StatsAllSubCommand.java | 2 +- .../tools/command/topic/AllocateMQSubCommand.java | 2 +- .../topic/RemappingStaticTopicSubCommand.java | 2 +- .../command/topic/TopicClusterSubCommand.java | 2 +- .../tools/command/topic/TopicListSubCommand.java | 2 +- .../tools/command/topic/TopicRouteSubCommand.java | 2 +- .../tools/command/topic/TopicStatusSubCommand.java | 2 +- .../command/topic/UpdateOrderConfCommand.java | 2 +- .../command/topic/UpdateStaticTopicSubCommand.java | 2 +- .../command/topic/UpdateTopicPermSubCommand.java | 2 +- .../tools/command/topic/UpdateTopicSubCommand.java | 2 +- .../rocketmq/tools/monitor/MonitorService.java | 3 +- .../tools/admin/DefaultMQAdminExtTest.java | 30 + .../command/acl/GetAccessConfigSubCommandTest.java | 39 -- .../ExportMetadataInRocksDBCommandTest.java | 75 +++ 680 files changed, 25528 insertions(+), 7327 deletions(-) create mode 100644 .github/ISSUE_TEMPLATE/doc.yml create mode 100644 acl/src/test/java/org/apache/rocketmq/acl/RemotingClientAccessTest.java copy acl/src/test/resources/{conf => access_acl_conf}/acl/plain_acl.yml (66%) delete mode 100644 broker/src/main/java/org/apache/rocketmq/broker/latency/BrokerFixedThreadPoolExecutor.java create mode 100644 broker/src/main/java/org/apache/rocketmq/broker/offset/RocksDBConsumerOffsetManager.java create mode 100644 broker/src/main/java/org/apache/rocketmq/broker/offset/RocksDBLmqConsumerOffsetManager.java rename remoting/src/main/java/org/apache/rocketmq/remoting/protocol/body/GetRemoteClientConfigBody.java => broker/src/main/java/org/apache/rocketmq/broker/offset/RocksDBOffsetSerializeWrapper.java (64%) create mode 100644 broker/src/main/java/org/apache/rocketmq/broker/subscription/RocksDBLmqSubscriptionGroupManager.java create mode 100644 broker/src/main/java/org/apache/rocketmq/broker/subscription/RocksDBSubscriptionGroupManager.java create mode 100644 broker/src/main/java/org/apache/rocketmq/broker/topic/RocksDBLmqTopicConfigManager.java create mode 100644 broker/src/main/java/org/apache/rocketmq/broker/topic/RocksDBTopicConfigManager.java copy store/src/main/java/org/apache/rocketmq/store/timer/TimerMetrics.java => broker/src/main/java/org/apache/rocketmq/broker/transaction/TransactionMetrics.java (66%) create mode 100644 broker/src/main/java/org/apache/rocketmq/broker/transaction/TransactionMetricsFlushService.java create mode 100644 broker/src/test/java/org/apache/rocketmq/broker/offset/RocksDBConsumerOffsetManagerTest.java rename broker/src/test/java/org/apache/rocketmq/broker/{substription => subscription}/ForbiddenTest.java (95%) create mode 100644 broker/src/test/java/org/apache/rocketmq/broker/topic/RocksdbTopicConfigManagerTest.java create mode 100644 broker/src/test/java/org/apache/rocketmq/broker/transaction/queue/TransactionMetricsTest.java create mode 100644 client/src/main/java/org/apache/rocketmq/client/consumer/store/ControllableOffset.java copy common/src/main/java/org/apache/rocketmq/common/attribute/CQType.java => client/src/main/java/org/apache/rocketmq/client/latency/Resolver.java (88%) rename client/src/main/java/org/apache/rocketmq/client/{producer/LocalTransactionExecuter.java => latency/ServiceDetector.java} (68%) create mode 100644 client/src/main/java/org/apache/rocketmq/client/producer/ProduceAccumulator.java create mode 100644 client/src/main/java/org/apache/rocketmq/client/rpchook/NamespaceRpcHook.java create mode 100644 client/src/test/java/org/apache/rocketmq/client/producer/ProduceAccumulatorTest.java create mode 100644 client/src/test/java/org/apache/rocketmq/client/rpchook/NamespaceRpcHookTest.java create mode 100644 common/src/main/java/org/apache/rocketmq/common/JraftConfig.java create mode 100644 common/src/main/java/org/apache/rocketmq/common/config/AbstractRocksDBStorage.java create mode 100644 common/src/main/java/org/apache/rocketmq/common/config/ConfigRocksDBStorage.java create mode 100644 common/src/main/java/org/apache/rocketmq/common/config/RocksDBConfigManager.java copy broker/src/main/java/org/apache/rocketmq/broker/latency/FutureTaskExt.java => common/src/main/java/org/apache/rocketmq/common/constant/HAProxyConstants.java (56%) copy common/src/main/java/org/apache/rocketmq/common/{attribute/CQType.java => metrics/NopObservableDoubleGauge.java} (82%) copy common/src/main/java/org/apache/rocketmq/common/{attribute/CQType.java => state/StateEventListener.java} (87%) create mode 100644 common/src/test/java/org/apache/rocketmq/common/KeyBuilderTest.java create mode 100644 common/src/test/java/org/apache/rocketmq/common/MessageExtBrokerInnerTest.java create mode 100644 controller/src/main/java/org/apache/rocketmq/controller/impl/JRaftController.java create mode 100644 controller/src/main/java/org/apache/rocketmq/controller/impl/JRaftControllerStateMachine.java create mode 100644 controller/src/main/java/org/apache/rocketmq/controller/impl/closure/ControllerClosure.java create mode 100644 controller/src/main/java/org/apache/rocketmq/controller/impl/event/ListEventSerializer.java create mode 100644 controller/src/main/java/org/apache/rocketmq/controller/impl/heartbeat/RaftBrokerHeartBeatManager.java create mode 100644 controller/src/main/java/org/apache/rocketmq/controller/impl/manager/RaftReplicasInfoManager.java create mode 100644 controller/src/main/java/org/apache/rocketmq/controller/impl/task/BrokerCloseChannelRequest.java copy remoting/src/main/java/org/apache/rocketmq/remoting/protocol/header/namesrv/RegisterTopicRequestHeader.java => controller/src/main/java/org/apache/rocketmq/controller/impl/task/BrokerCloseChannelResponse.java (75%) copy remoting/src/main/java/org/apache/rocketmq/remoting/protocol/header/InitConsumerOffsetRequestHeader.java => controller/src/main/java/org/apache/rocketmq/controller/impl/task/CheckNotActiveBrokerRequest.java (68%) copy remoting/src/main/java/org/apache/rocketmq/remoting/protocol/header/namesrv/RegisterTopicRequestHeader.java => controller/src/main/java/org/apache/rocketmq/controller/impl/task/CheckNotActiveBrokerResponse.java (74%) create mode 100644 controller/src/main/java/org/apache/rocketmq/controller/impl/task/GetBrokerLiveInfoRequest.java copy remoting/src/main/java/org/apache/rocketmq/remoting/protocol/header/namesrv/RegisterTopicRequestHeader.java => controller/src/main/java/org/apache/rocketmq/controller/impl/task/GetBrokerLiveInfoResponse.java (74%) copy remoting/src/main/java/org/apache/rocketmq/remoting/protocol/header/NotifyConsumerIdsChangedRequestHeader.java => controller/src/main/java/org/apache/rocketmq/controller/impl/task/GetSyncStateDataRequest.java (70%) create mode 100644 controller/src/main/java/org/apache/rocketmq/controller/impl/task/RaftBrokerHeartBeatEventRequest.java copy remoting/src/main/java/org/apache/rocketmq/remoting/protocol/header/namesrv/RegisterTopicRequestHeader.java => controller/src/main/java/org/apache/rocketmq/controller/impl/task/RaftBrokerHeartBeatEventResponse.java (74%) create mode 100644 docs/cn/Debug_In_Idea.md create mode 100644 docs/cn/image/Idea_config_broker.png create mode 100644 docs/cn/image/Idea_config_nameserver.png create mode 100644 docs/en/Debug_In_Idea.md copy remoting/src/main/java/org/apache/rocketmq/remoting/protocol/header/GetConsumerStatusRequestHeader.java => proxy/src/main/java/org/apache/rocketmq/proxy/common/ReceiptHandleGroupKey.java (54%) create mode 100644 proxy/src/main/java/org/apache/rocketmq/proxy/common/RenewEvent.java delete mode 100644 proxy/src/main/java/org/apache/rocketmq/proxy/grpc/OptionalSSLProtocolNegotiator.java create mode 100644 proxy/src/main/java/org/apache/rocketmq/proxy/grpc/ProxyAndTlsProtocolNegotiator.java create mode 100644 proxy/src/main/java/org/apache/rocketmq/proxy/grpc/constant/AttributeKeys.java copy remoting/src/main/java/org/apache/rocketmq/remoting/InvokeCallback.java => proxy/src/main/java/org/apache/rocketmq/proxy/grpc/v2/ContextStreamObserver.java (76%) create mode 100644 proxy/src/main/java/org/apache/rocketmq/proxy/processor/BatchAckResult.java create mode 100644 proxy/src/main/java/org/apache/rocketmq/proxy/remoting/protocol/http2proxy/HAProxyMessageForwarder.java rename broker/src/main/java/org/apache/rocketmq/broker/latency/FutureTaskExt.java => proxy/src/main/java/org/apache/rocketmq/proxy/service/message/ReceiptHandleMessage.java (61%) copy proxy/src/main/java/org/apache/rocketmq/proxy/{processor/ReceiptHandleProcessor.java => service/receipt/DefaultReceiptHandleManager.java} (69%) copy remoting/src/main/java/org/apache/rocketmq/remoting/ChannelEventListener.java => proxy/src/main/java/org/apache/rocketmq/proxy/service/receipt/ReceiptHandleManager.java (63%) create mode 100644 proxy/src/test/java/org/apache/rocketmq/proxy/grpc/ProxyAndTlsProtocolNegotiatorTest.java create mode 100644 proxy/src/test/java/org/apache/rocketmq/proxy/remoting/protocol/http2proxy/HAProxyMessageForwarderTest.java create mode 100644 proxy/src/test/java/org/apache/rocketmq/proxy/remoting/protocol/http2proxy/Http2ProtocolProxyHandlerTest.java rename proxy/src/test/java/org/apache/rocketmq/proxy/{processor/ReceiptHandleProcessorTest.java => service/receipt/DefaultReceiptHandleManagerTest.java} (62%) create mode 100644 remoting/src/main/java/org/apache/rocketmq/remoting/netty/AttributeKeys.java delete mode 100644 remoting/src/main/java/org/apache/rocketmq/remoting/protocol/header/GetBrokerClusterAclConfigResponseBody.java delete mode 100644 remoting/src/main/java/org/apache/rocketmq/remoting/protocol/header/GetBrokerClusterAclConfigResponseHeader.java copy remoting/src/main/java/org/apache/rocketmq/remoting/protocol/header/{NotifyConsumerIdsChangedRequestHeader.java => HeartbeatRequestHeader.java} (70%) copy client/src/main/java/org/apache/rocketmq/client/latency/LatencyFaultTolerance.java => remoting/src/main/java/org/apache/rocketmq/remoting/protocol/header/LockBatchMqRequestHeader.java (70%) copy client/src/main/java/org/apache/rocketmq/client/latency/LatencyFaultTolerance.java => remoting/src/main/java/org/apache/rocketmq/remoting/protocol/header/UnlockBatchMqRequestHeader.java (70%) create mode 100644 remoting/src/test/java/org/apache/rocketmq/remoting/ProxyProtocolTest.java copy remoting/src/{main/java/org/apache/rocketmq/remoting/netty/NettyEventType.java => test/java/org/apache/rocketmq/remoting/netty/MockChannel.java} (76%) create mode 100644 remoting/src/test/java/org/apache/rocketmq/remoting/netty/MockChannelPromise.java create mode 100644 remoting/src/test/java/org/apache/rocketmq/remoting/netty/NettyRemotingServerTest.java create mode 100644 remoting/src/test/java/org/apache/rocketmq/remoting/protocol/header/SendMessageRequestHeaderV2Test.java create mode 100644 remoting/src/test/java/org/apache/rocketmq/remoting/rpc/RpcRequestHeaderTest.java create mode 100644 store/src/main/java/org/apache/rocketmq/store/MultiDispatch.java create mode 100644 store/src/main/java/org/apache/rocketmq/store/RocksDBMessageStore.java copy store/src/main/java/org/apache/rocketmq/store/{CommitLogDispatcher.java => StoreType.java} (75%) create mode 100644 store/src/main/java/org/apache/rocketmq/store/metrics/RocksDBStoreMetricsManager.java create mode 100644 store/src/main/java/org/apache/rocketmq/store/queue/AbstractConsumeQueueStore.java create mode 100644 store/src/main/java/org/apache/rocketmq/store/queue/ConsumeQueueStoreInterface.java create mode 100644 store/src/main/java/org/apache/rocketmq/store/queue/MultiDispatchUtils.java create mode 100644 store/src/main/java/org/apache/rocketmq/store/queue/RocksDBConsumeQueue.java create mode 100644 store/src/main/java/org/apache/rocketmq/store/queue/RocksDBConsumeQueueOffsetTable.java create mode 100644 store/src/main/java/org/apache/rocketmq/store/queue/RocksDBConsumeQueueStore.java create mode 100644 store/src/main/java/org/apache/rocketmq/store/queue/RocksDBConsumeQueueTable.java create mode 100644 store/src/main/java/org/apache/rocketmq/store/rocksdb/ConsumeQueueCompactionFilterFactory.java create mode 100644 store/src/main/java/org/apache/rocketmq/store/rocksdb/ConsumeQueueRocksDBStorage.java create mode 100644 store/src/main/java/org/apache/rocketmq/store/rocksdb/RocksDBOptionsFactory.java create mode 100644 store/src/test/java/org/apache/rocketmq/store/AppendPropCRCTest.java create mode 100644 store/src/test/java/org/apache/rocketmq/store/MessageExtBrokerInnerTest.java copy store/src/test/java/org/apache/rocketmq/store/{DefaultMessageStoreTest.java => RocksDBMessageStoreTest.java} (78%) create mode 100644 test/src/test/java/org/apache/rocketmq/test/client/consumer/pop/BatchAckIT.java create mode 100644 test/src/test/java/org/apache/rocketmq/test/client/consumer/pop/PopMessageAndForwardingIT.java rename test/src/test/java/org/apache/rocketmq/test/{base => }/dledger/DLedgerProduceAndConsumeIT.java (99%) create mode 100644 test/src/test/java/org/apache/rocketmq/test/route/CreateAndUpdateTopicIT.java create mode 100644 tieredstore/src/main/java/org/apache/rocketmq/tieredstore/MessageStoreFetcher.java create mode 100644 tieredstore/src/main/java/org/apache/rocketmq/tieredstore/common/GetMessageResultExt.java rename tieredstore/src/main/java/org/apache/rocketmq/tieredstore/common/{BoundaryType.java => SelectBufferResult.java} (56%) rename tieredstore/src/main/java/org/apache/rocketmq/tieredstore/common/{SelectMappedBufferResultWrapper.java => SelectBufferResultWrapper.java} (55%) delete mode 100644 tieredstore/src/main/java/org/apache/rocketmq/tieredstore/file/TieredIndexFile.java copy store/src/main/java/org/apache/rocketmq/store/CommitLogDispatcher.java => tieredstore/src/main/java/org/apache/rocketmq/tieredstore/index/IndexFile.java (70%) create mode 100644 tieredstore/src/main/java/org/apache/rocketmq/tieredstore/index/IndexItem.java create mode 100644 tieredstore/src/main/java/org/apache/rocketmq/tieredstore/index/IndexService.java create mode 100644 tieredstore/src/main/java/org/apache/rocketmq/tieredstore/index/IndexStoreFile.java create mode 100644 tieredstore/src/main/java/org/apache/rocketmq/tieredstore/index/IndexStoreService.java rename client/src/main/java/org/apache/rocketmq/client/impl/BaseInvokeCallback.java => tieredstore/src/main/java/org/apache/rocketmq/tieredstore/provider/TieredStoreTopicBlackListFilter.java (55%) copy common/src/main/java/org/apache/rocketmq/common/attribute/CQType.java => tieredstore/src/main/java/org/apache/rocketmq/tieredstore/provider/TieredStoreTopicFilter.java (81%) rename tieredstore/src/main/java/org/apache/rocketmq/tieredstore/provider/{inputstream/TieredCommitLogInputStream.java => stream/CommitLogInputStream.java} (86%) rename tieredstore/src/main/java/org/apache/rocketmq/tieredstore/provider/{inputstream/TieredFileSegmentInputStream.java => stream/FileSegmentInputStream.java} (77%) rename tieredstore/src/main/java/org/apache/rocketmq/tieredstore/provider/{inputstream/TieredFileSegmentInputStreamFactory.java => stream/FileSegmentInputStreamFactory.java} (54%) create mode 100644 tieredstore/src/test/java/org/apache/rocketmq/tieredstore/common/GetMessageResultExtTest.java copy common/src/main/java/org/apache/rocketmq/common/utils/DataConverter.java => tieredstore/src/test/java/org/apache/rocketmq/tieredstore/common/SelectBufferResultTest.java (57%) create mode 100644 tieredstore/src/test/java/org/apache/rocketmq/tieredstore/file/TieredCommitLogTest.java delete mode 100644 tieredstore/src/test/java/org/apache/rocketmq/tieredstore/file/TieredIndexFileTest.java create mode 100644 tieredstore/src/test/java/org/apache/rocketmq/tieredstore/index/IndexItemTest.java create mode 100644 tieredstore/src/test/java/org/apache/rocketmq/tieredstore/index/IndexStoreFileTest.java create mode 100644 tieredstore/src/test/java/org/apache/rocketmq/tieredstore/index/IndexStoreServiceBenchTest.java create mode 100644 tieredstore/src/test/java/org/apache/rocketmq/tieredstore/index/IndexStoreServiceTest.java rename tieredstore/src/test/java/org/apache/rocketmq/tieredstore/provider/{MockTieredFileSegmentInputStream.java => MockFileSegmentInputStream.java} (82%) copy common/src/test/java/org/apache/rocketmq/common/utils/ConcurrentHashMapUtilsTest.java => tieredstore/src/test/java/org/apache/rocketmq/tieredstore/provider/TieredStoreTopicBlackListFilterTest.java (54%) delete mode 100644 tools/src/main/java/org/apache/rocketmq/tools/command/acl/GetAccessConfigSubCommand.java create mode 100644 tools/src/main/java/org/apache/rocketmq/tools/command/export/ExportMetadataInRocksDBCommand.java create mode 100644 tools/src/main/java/org/apache/rocketmq/tools/command/metadata/RocksDBConfigToJsonCommand.java delete mode 100644 tools/src/test/java/org/apache/rocketmq/tools/command/acl/GetAccessConfigSubCommandTest.java create mode 100644 tools/src/test/java/org/apache/rocketmq/tools/command/metadata/ExportMetadataInRocksDBCommandTest.java