在好例子网,分享、交流、成长!
您当前所在位置:首页Others 开发实例一般编程问题 → Apache RocketMQ源码:云原生消息和流平台,打造事件驱动应用变得简单

Apache RocketMQ源码:云原生消息和流平台,打造事件驱动应用变得简单

一般编程问题

下载此实例

实例介绍

【实例简介】

Apache RocketMQ是一个分布式消息和流平台,具有低延迟、高性能和可靠性,万亿级容量和灵活的可扩展性。它提供多种功能:消息模式包括发布/订阅、请求/回复和流式处理;金融级事务消息;内置容错和基于DLedger Controller的高可用性配置选项;内置消息跟踪能力,也支持opentracing;多样的大数据和流处理生态系统集成;按时间或偏移量进行消息追溯;同一队列中可靠的FIFO和严格有序的消息传递;高效的拉取和推送消费模型;单个队列中百万级消息累积容量;多种消息协议如gRPC、MQTT、JMS和OpenMessaging;灵活的分布式扩展部署架构;快速的批量消息交换系统;各种消息过滤机制,如SQL和Tag;用于隔离测试和云隔离集群的Docker镜像;功能丰富的管理仪表板用于配置、指标和监控;认证和授权;免费开源连接器,用于源和汇;轻量级实时计算。

【实例截图】
【核心代码】
文件清单
└── rocketmq-281a7b32f002019525cfa4dd4a4b983b653f070d
    ├── acl
    │   ├── BUILD.bazel
    │   ├── pom.xml
    │   └── src
    │       ├── main
    │       │   └── java
    │       │       └── org
    │       │           └── apache
    │       │               └── rocketmq
    │       │                   └── acl
    │       │                       ├── AccessResource.java
    │       │                       ├── AccessValidator.java
    │       │                       ├── common
    │       │                       │   ├── AclClientRPCHook.java
    │       │                       │   ├── AclConstants.java
    │       │                       │   ├── AclException.java
    │       │                       │   ├── AclSigner.java
    │       │                       │   ├── AclUtils.java
    │       │                       │   ├── AuthenticationHeader.java
    │       │                       │   ├── AuthorizationHeader.java
    │       │                       │   ├── Permission.java
    │       │                       │   ├── SessionCredentials.java
    │       │                       │   └── SigningAlgorithm.java
    │       │                       ├── PermissionChecker.java
    │       │                       └── plain
    │       │                           ├── PlainAccessData.java
    │       │                           ├── PlainAccessResource.java
    │       │                           ├── PlainAccessValidator.java
    │       │                           ├── PlainPermissionChecker.java
    │       │                           ├── PlainPermissionManager.java
    │       │                           ├── RemoteAddressStrategyFactory.java
    │       │                           └── RemoteAddressStrategy.java
    │       └── test
    │           ├── java
    │           │   └── org
    │           │       └── apache
    │           │           └── rocketmq
    │           │               └── acl
    │           │                   ├── common
    │           │                   │   ├── AclClientRPCHookTest.java
    │           │                   │   ├── AclSignerTest.java
    │           │                   │   ├── AclUtilsTest.java
    │           │                   │   ├── PermissionTest.java
    │           │                   │   └── SessionCredentialsTest.java
    │           │                   ├── plain
    │           │                   │   ├── AclTestHelper.java
    │           │                   │   ├── PlainAccessControlFlowTest.java
    │           │                   │   ├── PlainAccessValidatorTest.java
    │           │                   │   ├── PlainPermissionManagerTest.java
    │           │                   │   └── RemoteAddressStrategyTest.java
    │           │                   └── RemotingClientAccessTest.java
    │           └── resources
    │               ├── access_acl_conf
    │               │   └── acl
    │               │       └── plain_acl.yml
    │               ├── both_acl_file_folder_conf
    │               │   └── conf
    │               │       ├── acl
    │               │       │   └── plain_acl.yml
    │               │       └── plain_acl.yml
    │               ├── conf
    │               │   ├── acl
    │               │   │   └── plain_acl.yml
    │               │   ├── plain_acl_bak.yml
    │               │   ├── plain_acl_correct.yml
    │               │   ├── plain_acl_delete.yml
    │               │   ├── plain_acl_global_white_addrs.yml
    │               │   ├── plain_acl_incomplete.yml
    │               │   ├── plain_acl_update_create.yml
    │               │   ├── plain_acl_with_no_accouts.yml
    │               │   ├── plain_acl.yml
    │               │   └── watch
    │               │       └── plain_acl_watch.yml
    │               ├── empty_acl_folder_conf
    │               │   └── conf
    │               │       └── plain_acl.yml
    │               ├── only_acl_folder_conf
    │               │   └── conf
    │               │       └── acl
    │               │           └── plain_acl.yml
    │               ├── rmq.logback-test.xml
    │               └── update_global_white_addr
    │                   └── conf
    │                       ├── acl
    │                       │   ├── empty.yml
    │                       │   └── plain_acl.yml
    │                       └── plain_acl.yml
    ├── bazel
    │   ├── BUILD.bazel
    │   └── GenTestRules.bzl
    ├── broker
    │   ├── BUILD.bazel
    │   ├── pom.xml
    │   └── src
    │       ├── main
    │       │   ├── java
    │       │   │   └── org
    │       │   │       └── apache
    │       │   │           └── rocketmq
    │       │   │               └── broker
    │       │   │                   ├── BrokerController.java
    │       │   │                   ├── BrokerPathConfigHelper.java
    │       │   │                   ├── BrokerPreOnlineService.java
    │       │   │                   ├── BrokerStartup.java
    │       │   │                   ├── client
    │       │   │                   │   ├── ClientChannelInfo.java
    │       │   │                   │   ├── ClientHousekeepingService.java
    │       │   │                   │   ├── ConsumerGroupEvent.java
    │       │   │                   │   ├── ConsumerGroupInfo.java
    │       │   │                   │   ├── ConsumerIdsChangeListener.java
    │       │   │                   │   ├── ConsumerManager.java
    │       │   │                   │   ├── DefaultConsumerIdsChangeListener.java
    │       │   │                   │   ├── net
    │       │   │                   │   │   └── Broker2Client.java
    │       │   │                   │   ├── ProducerChangeListener.java
    │       │   │                   │   ├── ProducerGroupEvent.java
    │       │   │                   │   ├── ProducerManager.java
    │       │   │                   │   └── rebalance
    │       │   │                   │       └── RebalanceLockManager.java
    │       │   │                   ├── coldctr
    │       │   │                   │   ├── ColdCtrStrategy.java
    │       │   │                   │   ├── ColdDataCgCtrService.java
    │       │   │                   │   ├── ColdDataPullRequestHoldService.java
    │       │   │                   │   ├── PIDAdaptiveColdCtrStrategy.java
    │       │   │                   │   └── SimpleColdCtrStrategy.java
    │       │   │                   ├── controller
    │       │   │                   │   └── ReplicasManager.java
    │       │   │                   ├── dledger
    │       │   │                   │   └── DLedgerRoleChangeHandler.java
    │       │   │                   ├── failover
    │       │   │                   │   └── EscapeBridge.java
    │       │   │                   ├── filter
    │       │   │                   │   ├── CommitLogDispatcherCalcBitMap.java
    │       │   │                   │   ├── ConsumerFilterData.java
    │       │   │                   │   ├── ConsumerFilterManager.java
    │       │   │                   │   ├── ExpressionForRetryMessageFilter.java
    │       │   │                   │   ├── ExpressionMessageFilter.java
    │       │   │                   │   └── MessageEvaluationContext.java
    │       │   │                   ├── latency
    │       │   │                   │   └── BrokerFastFailure.java
    │       │   │                   ├── loadbalance
    │       │   │                   │   └── MessageRequestModeManager.java
    │       │   │                   ├── longpolling
    │       │   │                   │   ├── LmqPullRequestHoldService.java
    │       │   │                   │   ├── ManyPullRequest.java
    │       │   │                   │   ├── NotificationRequest.java
    │       │   │                   │   ├── NotifyMessageArrivingListener.java
    │       │   │                   │   ├── PollingHeader.java
    │       │   │                   │   ├── PollingResult.java
    │       │   │                   │   ├── PopLongPollingService.java
    │       │   │                   │   ├── PopRequest.java
    │       │   │                   │   ├── PullRequestHoldService.java
    │       │   │                   │   └── PullRequest.java
    │       │   │                   ├── metrics
    │       │   │                   │   ├── BrokerMetricsConstant.java
    │       │   │                   │   ├── BrokerMetricsManager.java
    │       │   │                   │   ├── ConsumerAttr.java
    │       │   │                   │   ├── ConsumerLagCalculator.java
    │       │   │                   │   ├── PopMetricsConstant.java
    │       │   │                   │   ├── PopMetricsManager.java
    │       │   │                   │   ├── PopReviveMessageType.java
    │       │   │                   │   └── ProducerAttr.java
    │       │   │                   ├── mqtrace
    │       │   │                   │   ├── ConsumeMessageContext.java
    │       │   │                   │   ├── ConsumeMessageHook.java
    │       │   │                   │   ├── SendMessageContext.java
    │       │   │                   │   └── SendMessageHook.java
    │       │   │                   ├── offset
    │       │   │                   │   ├── BroadcastOffsetManager.java
    │       │   │                   │   ├── BroadcastOffsetStore.java
    │       │   │                   │   ├── ConsumerOffsetManager.java
    │       │   │                   │   ├── ConsumerOrderInfoLockManager.java
    │       │   │                   │   ├── ConsumerOrderInfoManager.java
    │       │   │                   │   ├── LmqConsumerOffsetManager.java
    │       │   │                   │   ├── RocksDBConsumerOffsetManager.java
    │       │   │                   │   ├── RocksDBLmqConsumerOffsetManager.java
    │       │   │                   │   └── RocksDBOffsetSerializeWrapper.java
    │       │   │                   ├── out
    │       │   │                   │   └── BrokerOuterAPI.java
    │       │   │                   ├── pagecache
    │       │   │                   │   ├── ManyMessageTransfer.java
    │       │   │                   │   ├── OneMessageTransfer.java
    │       │   │                   │   └── QueryMessageTransfer.java
    │       │   │                   ├── plugin
    │       │   │                   │   ├── BrokerAttachedPlugin.java
    │       │   │                   │   └── PullMessageResultHandler.java
    │       │   │                   ├── processor
    │       │   │                   │   ├── AbstractSendMessageProcessor.java
    │       │   │                   │   ├── AckMessageProcessor.java
    │       │   │                   │   ├── AdminBrokerProcessor.java
    │       │   │                   │   ├── ChangeInvisibleTimeProcessor.java
    │       │   │                   │   ├── ClientManageProcessor.java
    │       │   │                   │   ├── ConsumerManageProcessor.java
    │       │   │                   │   ├── DefaultPullMessageResultHandler.java
    │       │   │                   │   ├── EndTransactionProcessor.java
    │       │   │                   │   ├── NotificationProcessor.java
    │       │   │                   │   ├── PeekMessageProcessor.java
    │       │   │                   │   ├── PollingInfoProcessor.java
    │       │   │                   │   ├── PopBufferMergeService.java
    │       │   │                   │   ├── PopInflightMessageCounter.java
    │       │   │                   │   ├── PopMessageProcessor.java
    │       │   │                   │   ├── PopReviveService.java
    │       │   │                   │   ├── PullMessageProcessor.java
    │       │   │                   │   ├── QueryAssignmentProcessor.java
    │       │   │                   │   ├── QueryMessageProcessor.java
    │       │   │                   │   ├── ReplyMessageProcessor.java
    │       │   │                   │   ├── SendMessageCallback.java
    │       │   │                   │   └── SendMessageProcessor.java
    │       │   │                   ├── schedule
    │       │   │                   │   ├── DelayOffsetSerializeWrapper.java
    │       │   │                   │   └── ScheduleMessageService.java
    │       │   │                   ├── ShutdownHook.java
    │       │   │                   ├── slave
    │       │   │                   │   └── SlaveSynchronize.java
    │       │   │                   ├── subscription
    │       │   │                   │   ├── LmqSubscriptionGroupManager.java
    │       │   │                   │   ├── RocksDBLmqSubscriptionGroupManager.java
    │       │   │                   │   ├── RocksDBSubscriptionGroupManager.java
    │       │   │                   │   └── SubscriptionGroupManager.java
    │       │   │                   ├── topic
    │       │   │                   │   ├── LmqTopicConfigManager.java
    │       │   │                   │   ├── RocksDBLmqTopicConfigManager.java
    │       │   │                   │   ├── RocksDBTopicConfigManager.java
    │       │   │                   │   ├── TopicConfigManager.java
    │       │   │                   │   ├── TopicQueueMappingCleanService.java
    │       │   │                   │   ├── TopicQueueMappingManager.java
    │       │   │                   │   └── TopicRouteInfoManager.java
    │       │   │                   ├── transaction
    │       │   │                   │   ├── AbstractTransactionalMessageCheckListener.java
    │       │   │                   │   ├── OperationResult.java
    │       │   │                   │   ├── queue
    │       │   │                   │   │   ├── DefaultTransactionalMessageCheckListener.java
    │       │   │                   │   │   ├── GetResult.java
    │       │   │                   │   │   ├── MessageQueueOpContext.java
    │       │   │                   │   │   ├── TransactionalMessageBridge.java
    │       │   │                   │   │   ├── TransactionalMessageServiceImpl.java
    │       │   │                   │   │   ├── TransactionalMessageUtil.java
    │       │   │                   │   │   └── TransactionalOpBatchService.java
    │       │   │                   │   ├── TransactionalMessageCheckService.java
    │       │   │                   │   ├── TransactionalMessageService.java
    │       │   │                   │   ├── TransactionMetricsFlushService.java
    │       │   │                   │   └── TransactionMetrics.java
    │       │   │                   └── util
    │       │   │                       ├── HookUtils.java
    │       │   │                       └── PositiveAtomicCounter.java
    │       │   └── resources
    │       │       ├── rmq.broker.logback.xml
    │       │       └── transaction.sql
    │       └── test
    │           ├── java
    │           │   └── org
    │           │       └── apache
    │           │           └── rocketmq
    │           │               └── broker
    │           │                   ├── BrokerControllerTest.java
    │           │                   ├── BrokerOuterAPITest.java
    │           │                   ├── BrokerPathConfigHelperTest.java
    │           │                   ├── BrokerStartupTest.java
    │           │                   ├── client
    │           │                   │   ├── ConsumerManagerScannerTest.java
    │           │                   │   ├── ConsumerManagerTest.java
    │           │                   │   └── ProducerManagerTest.java
    │           │                   ├── controller
    │           │                   │   ├── ReplicasManagerRegisterTest.java
    │           │                   │   └── ReplicasManagerTest.java
    │           │                   ├── failover
    │           │                   │   └── EscapeBridgeTest.java
    │           │                   ├── filter
    │           │                   │   ├── CommitLogDispatcherCalcBitMapTest.java
    │           │                   │   ├── ConsumerFilterManagerTest.java
    │           │                   │   └── MessageStoreWithFilterTest.java
    │           │                   ├── latency
    │           │                   │   └── BrokerFastFailureTest.java
    │           │                   ├── longpolling
    │           │                   │   └── PullRequestHoldServiceTest.java
    │           │                   ├── metrics
    │           │                   │   └── BrokerMetricsManagerTest.java
    │           │                   ├── offset
    │           │                   │   ├── BroadcastOffsetManagerTest.java
    │           │                   │   ├── BroadcastOffsetStoreTest.java
    │           │                   │   ├── ConsumerOffsetManagerTest.java
    │           │                   │   ├── ConsumerOrderInfoManagerLockFreeNotifyTest.java
    │           │                   │   ├── ConsumerOrderInfoManagerTest.java
    │           │                   │   ├── LmqConsumerOffsetManagerTest.java
    │           │                   │   └── RocksDBConsumerOffsetManagerTest.java
    │           │                   ├── pagecache
    │           │                   │   ├── ManyMessageTransferTest.java
    │           │                   │   └── OneMessageTransferTest.java
    │           │                   ├── processor
    │           │                   │   ├── AckMessageProcessorTest.java
    │           │                   │   ├── AdminBrokerProcessorTest.java
    │           │                   │   ├── ChangeInvisibleTimeProcessorTest.java
    │           │                   │   ├── ClientManageProcessorTest.java
    │           │                   │   ├── ConsumerManageProcessorTest.java
    │           │                   │   ├── EndTransactionProcessorTest.java
    │           │                   │   ├── PopBufferMergeServiceTest.java
    │           │                   │   ├── PopInflightMessageCounterTest.java
    │           │                   │   ├── PopMessageProcessorTest.java
    │           │                   │   ├── PopReviveServiceTest.java
    │           │                   │   ├── PullMessageProcessorTest.java
    │           │                   │   ├── QueryAssignmentProcessorTest.java
    │           │                   │   ├── ReplyMessageProcessorTest.java
    │           │                   │   └── SendMessageProcessorTest.java
    │           │                   ├── schedule
    │           │                   │   └── ScheduleMessageServiceTest.java
    │           │                   ├── subscription
    │           │                   │   ├── ForbiddenTest.java
    │           │                   │   └── SubscriptionGroupManagerTest.java
    │           │                   ├── topic
    │           │                   │   ├── RocksdbTopicConfigManagerTest.java
    │           │                   │   ├── TopicConfigManagerTest.java
    │           │                   │   └── TopicQueueMappingManagerTest.java
    │           │                   ├── transaction
    │           │                   │   └── queue
    │           │                   │       ├── DefaultTransactionalMessageCheckListenerTest.java
    │           │                   │       ├── TransactionalMessageBridgeTest.java
    │           │                   │       ├── TransactionalMessageServiceImplTest.java
    │           │                   │       ├── TransactionalMessageUtilTest.java
    │           │                   │       └── TransactionMetricsTest.java
    │           │                   └── util
    │           │                       ├── HookUtilsTest.java
    │           │                       ├── LogTransactionalMessageCheckListener.java
    │           │                       ├── ServiceProviderTest.java
    │           │                       └── TransactionalMessageServiceImpl.java
    │           └── resources
    │               ├── META-INF
    │               │   └── service
    │               │       ├── org.apache.rocketmq.acl.AccessValidator
    │               │       ├── org.apache.rocketmq.broker.transaction.AbstractTransactionalMessageCheckListener
    │               │       └── org.apache.rocketmq.broker.transaction.TransactionalMessageService
    │               └── rmq.logback-test.xml
    ├── BUILD.bazel
    ├── BUILDING
    ├── client
    │   ├── BUILD.bazel
    │   ├── pom.xml
    │   └── src
    │       ├── main
    │       │   ├── java
    │       │   │   └── org
    │       │   │       └── apache
    │       │   │           └── rocketmq
    │       │   │               └── client
    │       │   │                   ├── AccessChannel.java
    │       │   │                   ├── admin
    │       │   │                   │   └── MQAdminExtInner.java
    │       │   │                   ├── ClientConfig.java
    │       │   │                   ├── common
    │       │   │                   │   ├── ClientErrorCode.java
    │       │   │                   │   ├── NameserverAccessConfig.java
    │       │   │                   │   └── ThreadLocalIndex.java
    │       │   │                   ├── consumer
    │       │   │                   │   ├── AckCallback.java
    │       │   │                   │   ├── AckResult.java
    │       │   │                   │   ├── AckStatus.java
    │       │   │                   │   ├── AllocateMessageQueueStrategy.java
    │       │   │                   │   ├── DefaultLitePullConsumer.java
    │       │   │                   │   ├── DefaultMQPullConsumer.java
    │       │   │                   │   ├── DefaultMQPushConsumer.java
    │       │   │                   │   ├── listener
    │       │   │                   │   │   ├── ConsumeConcurrentlyContext.java
    │       │   │                   │   │   ├── ConsumeConcurrentlyStatus.java
    │       │   │                   │   │   ├── ConsumeOrderlyContext.java
    │       │   │                   │   │   ├── ConsumeOrderlyStatus.java
    │       │   │                   │   │   ├── ConsumeReturnType.java
    │       │   │                   │   │   ├── MessageListenerConcurrently.java
    │       │   │                   │   │   ├── MessageListener.java
    │       │   │                   │   │   └── MessageListenerOrderly.java
    │       │   │                   │   ├── LitePullConsumer.java
    │       │   │                   │   ├── MessageQueueListener.java
    │       │   │                   │   ├── MessageSelector.java
    │       │   │                   │   ├── MQConsumer.java
    │       │   │                   │   ├── MQPullConsumer.java
    │       │   │                   │   ├── MQPullConsumerScheduleService.java
    │       │   │                   │   ├── MQPushConsumer.java
    │       │   │                   │   ├── PopCallback.java
    │       │   │                   │   ├── PopResult.java
    │       │   │                   │   ├── PopStatus.java
    │       │   │                   │   ├── PullCallback.java
    │       │   │                   │   ├── PullResult.java
    │       │   │                   │   ├── PullStatus.java
    │       │   │                   │   ├── PullTaskCallback.java
    │       │   │                   │   ├── PullTaskContext.java
    │       │   │                   │   ├── rebalance
    │       │   │                   │   │   ├── AbstractAllocateMessageQueueStrategy.java
    │       │   │                   │   │   ├── AllocateMachineRoomNearby.java
    │       │   │                   │   │   ├── AllocateMessageQueueAveragelyByCircle.java
    │       │   │                   │   │   ├── AllocateMessageQueueAveragely.java
    │       │   │                   │   │   ├── AllocateMessageQueueByConfig.java
    │       │   │                   │   │   ├── AllocateMessageQueueByMachineRoom.java
    │       │   │                   │   │   └── AllocateMessageQueueConsistentHash.java
    │       │   │                   │   ├── store
    │       │   │                   │   │   ├── ControllableOffset.java
    │       │   │                   │   │   ├── LocalFileOffsetStore.java
    │       │   │                   │   │   ├── OffsetSerializeWrapper.java
    │       │   │                   │   │   ├── OffsetStore.java
    │       │   │                   │   │   ├── ReadOffsetType.java
    │       │   │                   │   │   └── RemoteBrokerOffsetStore.java
    │       │   │                   │   └── TopicMessageQueueChangeListener.java
    │       │   │                   ├── exception
    │       │   │                   │   ├── MQBrokerException.java
    │       │   │                   │   ├── MQClientException.java
    │       │   │                   │   ├── OffsetNotFoundException.java
    │       │   │                   │   └── RequestTimeoutException.java
    │       │   │                   ├── hook
    │       │   │                   │   ├── CheckForbiddenContext.java
    │       │   │                   │   ├── CheckForbiddenHook.java
    │       │   │                   │   ├── ConsumeMessageContext.java
    │       │   │                   │   ├── ConsumeMessageHook.java
    │       │   │                   │   ├── EndTransactionContext.java
    │       │   │                   │   ├── EndTransactionHook.java
    │       │   │                   │   ├── FilterMessageContext.java
    │       │   │                   │   ├── FilterMessageHook.java
    │       │   │                   │   ├── SendMessageContext.java
    │       │   │                   │   └── SendMessageHook.java
    │       │   │                   ├── impl
    │       │   │                   │   ├── admin
    │       │   │                   │   │   └── MqClientAdminImpl.java
    │       │   │                   │   ├── ClientRemotingProcessor.java
    │       │   │                   │   ├── CommunicationMode.java
    │       │   │                   │   ├── consumer
    │       │   │                   │   │   ├── AssignedMessageQueue.java
    │       │   │                   │   │   ├── ConsumeMessageConcurrentlyService.java
    │       │   │                   │   │   ├── ConsumeMessageOrderlyService.java
    │       │   │                   │   │   ├── ConsumeMessagePopConcurrentlyService.java
    │       │   │                   │   │   ├── ConsumeMessagePopOrderlyService.java
    │       │   │                   │   │   ├── ConsumeMessageService.java
    │       │   │                   │   │   ├── DefaultLitePullConsumerImpl.java
    │       │   │                   │   │   ├── DefaultMQPullConsumerImpl.java
    │       │   │                   │   │   ├── DefaultMQPushConsumerImpl.java
    │       │   │                   │   │   ├── MessageQueueLock.java
    │       │   │                   │   │   ├── MessageRequest.java
    │       │   │                   │   │   ├── MQConsumerInner.java
    │       │   │                   │   │   ├── PopProcessQueue.java
    │       │   │                   │   │   ├── PopRequest.java
    │       │   │                   │   │   ├── ProcessQueue.java
    │       │   │                   │   │   ├── PullAPIWrapper.java
    │       │   │                   │   │   ├── PullMessageService.java
    │       │   │                   │   │   ├── PullRequest.java
    │       │   │                   │   │   ├── PullResultExt.java
    │       │   │                   │   │   ├── RebalanceImpl.java
    │       │   │                   │   │   ├── RebalanceLitePullImpl.java
    │       │   │                   │   │   ├── RebalancePullImpl.java
    │       │   │                   │   │   ├── RebalancePushImpl.java
    │       │   │                   │   │   └── RebalanceService.java
    │       │   │                   │   ├── factory
    │       │   │                   │   │   └── MQClientInstance.java
    │       │   │                   │   ├── FindBrokerResult.java
    │       │   │                   │   ├── MQAdminImpl.java
    │       │   │                   │   ├── mqclient
    │       │   │                   │   │   ├── DoNothingClientRemotingProcessor.java
    │       │   │                   │   │   ├── MQClientAPIExt.java
    │       │   │                   │   │   └── MQClientAPIFactory.java
    │       │   │                   │   ├── MQClientAPIImpl.java
    │       │   │                   │   ├── MQClientManager.java
    │       │   │                   │   └── producer
    │       │   │                   │       ├── DefaultMQProducerImpl.java
    │       │   │                   │       ├── MQProducerInner.java
    │       │   │                   │       └── TopicPublishInfo.java
    │       │   │                   ├── latency
    │       │   │                   │   ├── LatencyFaultToleranceImpl.java
    │       │   │                   │   ├── LatencyFaultTolerance.java
    │       │   │                   │   ├── MQFaultStrategy.java
    │       │   │                   │   ├── Resolver.java
    │       │   │                   │   └── ServiceDetector.java
    │       │   │                   ├── MQAdmin.java
    │       │   │                   ├── MqClientAdmin.java
    │       │   │                   ├── MQHelper.java
    │       │   │                   ├── producer
    │       │   │                   │   ├── DefaultMQProducer.java
    │       │   │                   │   ├── LocalTransactionState.java
    │       │   │                   │   ├── MessageQueueSelector.java
    │       │   │                   │   ├── MQProducer.java
    │       │   │                   │   ├── ProduceAccumulator.java
    │       │   │                   │   ├── RequestCallback.java
    │       │   │                   │   ├── RequestFutureHolder.java
    │       │   │                   │   ├── RequestResponseFuture.java
    │       │   │                   │   ├── selector
    │       │   │                   │   │   ├── SelectMessageQueueByHash.java
    │       │   │                   │   │   ├── SelectMessageQueueByMachineRoom.java
    │       │   │                   │   │   └── SelectMessageQueueByRandom.java
    │       │   │                   │   ├── SendCallback.java
    │       │   │                   │   ├── SendResult.java
    │       │   │                   │   ├── SendStatus.java
    │       │   │                   │   ├── TransactionCheckListener.java
    │       │   │                   │   ├── TransactionListener.java
    │       │   │                   │   ├── TransactionMQProducer.java
    │       │   │                   │   └── TransactionSendResult.java
    │       │   │                   ├── QueryResult.java
    │       │   │                   ├── rpchook
    │       │   │                   │   └── NamespaceRpcHook.java
    │       │   │                   ├── stat
    │       │   │                   │   └── ConsumerStatsManager.java
    │       │   │                   ├── trace
    │       │   │                   │   ├── AsyncTraceDispatcher.java
    │       │   │                   │   ├── hook
    │       │   │                   │   │   ├── ConsumeMessageOpenTracingHookImpl.java
    │       │   │                   │   │   ├── ConsumeMessageTraceHookImpl.java
    │       │   │                   │   │   ├── EndTransactionOpenTracingHookImpl.java
    │       │   │                   │   │   ├── EndTransactionTraceHookImpl.java
    │       │   │                   │   │   ├── SendMessageOpenTracingHookImpl.java
    │       │   │                   │   │   └── SendMessageTraceHookImpl.java
    │       │   │                   │   ├── TraceBean.java
    │       │   │                   │   ├── TraceConstants.java
    │       │   │                   │   ├── TraceContext.java
    │       │   │                   │   ├── TraceDataEncoder.java
    │       │   │                   │   ├── TraceDispatcher.java
    │       │   │                   │   ├── TraceDispatcherType.java
    │       │   │                   │   ├── TraceTransferBean.java
    │       │   │                   │   ├── TraceType.java
    │       │   │                   │   └── TraceView.java
    │       │   │                   ├── utils
    │       │   │                   │   └── MessageUtil.java
    │       │   │                   └── Validators.java
    │       │   └── resources
    │       │       └── rmq.client.logback.xml
    │       └── test
    │           ├── java
    │           │   └── org
    │           │       └── apache
    │           │           └── rocketmq
    │           │               └── client
    │           │                   ├── common
    │           │                   │   └── ThreadLocalIndexTest.java
    │           │                   ├── consumer
    │           │                   │   ├── DefaultLitePullConsumerTest.java
    │           │                   │   ├── DefaultMQPullConsumerTest.java
    │           │                   │   ├── DefaultMQPushConsumerTest.java
    │           │                   │   ├── rebalance
    │           │                   │   │   ├── AllocateMachineRoomNearByTest.java
    │           │                   │   │   ├── AllocateMessageQueueAveragelyByCircleTest.java
    │           │                   │   │   ├── AllocateMessageQueueAveragelyTest.java
    │           │                   │   │   ├── AllocateMessageQueueByConfigTest.java
    │           │                   │   │   ├── AllocateMessageQueueByMachineRoomTest.java
    │           │                   │   │   └── AllocateMessageQueueConsitentHashTest.java
    │           │                   │   └── store
    │           │                   │       ├── LocalFileOffsetStoreTest.java
    │           │                   │       └── RemoteBrokerOffsetStoreTest.java
    │           │                   ├── impl
    │           │                   │   ├── consumer
    │           │                   │   │   ├── ConsumeMessageConcurrentlyServiceTest.java
    │           │                   │   │   ├── ConsumeMessageOrderlyServiceTest.java
    │           │                   │   │   ├── DefaultMQPushConsumerImplTest.java
    │           │                   │   │   ├── ProcessQueueTest.java
    │           │                   │   │   ├── RebalanceLitePullImplTest.java
    │           │                   │   │   └── RebalancePushImplTest.java
    │           │                   │   ├── factory
    │           │                   │   │   └── MQClientInstanceTest.java
    │           │                   │   └── MQClientAPIImplTest.java
    │           │                   ├── latency
    │           │                   │   └── LatencyFaultToleranceImplTest.java
    │           │                   ├── producer
    │           │                   │   ├── DefaultMQProducerTest.java
    │           │                   │   ├── ProduceAccumulatorTest.java
    │           │                   │   ├── RequestResponseFutureTest.java
    │           │                   │   └── selector
    │           │                   │       ├── SelectMessageQueueByHashTest.java
    │           │                   │       └── SelectMessageQueueRetryTest.java
    │           │                   ├── rpchook
    │           │                   │   └── NamespaceRpcHookTest.java
    │           │                   ├── trace
    │           │                   │   ├── DefaultMQConsumerWithOpenTracingTest.java
    │           │                   │   ├── DefaultMQConsumerWithTraceTest.java
    │           │                   │   ├── DefaultMQLitePullConsumerWithTraceTest.java
    │           │                   │   ├── DefaultMQProducerWithOpenTracingTest.java
    │           │                   │   ├── DefaultMQProducerWithTraceTest.java
    │           │                   │   ├── TraceDataEncoderTest.java
    │           │                   │   ├── TraceViewTest.java
    │           │                   │   ├── TransactionMQProducerWithOpenTracingTest.java
    │           │                   │   └── TransactionMQProducerWithTraceTest.java
    │           │                   ├── utils
    │           │                   │   └── MessageUtilsTest.java
    │           │                   └── ValidatorsTest.java
    │           └── resources
    │               ├── org
    │               │   └── powermock
    │               │       └── extensions
    │               │           └── configuration.properties
    │               └── rmq.logback-test.xml
    ├── common
    │   ├── BUILD.bazel
    │   ├── pom.xml
    │   └── src
    │       ├── main
    │       │   ├── java
    │       │   │   └── org
    │       │   │       └── apache
    │       │   │           └── rocketmq
    │       │   │               └── common
    │       │   │                   ├── AbortProcessException.java
    │       │   │                   ├── AbstractBrokerRunnable.java
    │       │   │                   ├── AclConfig.java
    │       │   │                   ├── annotation
    │       │   │                   │   └── ImportantField.java
    │       │   │                   ├── attribute
    │       │   │                   │   ├── Attribute.java
    │       │   │                   │   ├── AttributeParser.java
    │       │   │                   │   ├── AttributeUtil.java
    │       │   │                   │   ├── BooleanAttribute.java
    │       │   │                   │   ├── CleanupPolicy.java
    │       │   │                   │   ├── CQType.java
    │       │   │                   │   ├── EnumAttribute.java
    │       │   │                   │   ├── LongRangeAttribute.java
    │       │   │                   │   └── TopicMessageType.java
    │       │   │                   ├── BoundaryType.java
    │       │   │                   ├── BrokerConfig.java
    │       │   │                   ├── BrokerConfigSingleton.java
    │       │   │                   ├── BrokerIdentity.java
    │       │   │                   ├── coldctr
    │       │   │                   │   └── AccAndTimeStamp.java
    │       │   │                   ├── compression
    │       │   │                   │   ├── CompressionType.java
    │       │   │                   │   ├── CompressorFactory.java
    │       │   │                   │   ├── Compressor.java
    │       │   │                   │   ├── Lz4Compressor.java
    │       │   │                   │   ├── ZlibCompressor.java
    │       │   │                   │   └── ZstdCompressor.java
    │       │   │                   ├── config
    │       │   │                   │   ├── AbstractRocksDBStorage.java
    │       │   │                   │   ├── ConfigRocksDBStorage.java
    │       │   │                   │   └── RocksDBConfigManager.java
    │       │   │                   ├── ConfigManager.java
    │       │   │                   ├── consistenthash
    │       │   │                   │   ├── ConsistentHashRouter.java
    │       │   │                   │   ├── HashFunction.java
    │       │   │                   │   ├── Node.java
    │       │   │                   │   └── VirtualNode.java
    │       │   │                   ├── constant
    │       │   │                   │   ├── ConsumeInitMode.java
    │       │   │                   │   ├── DBMsgConstants.java
    │       │   │                   │   ├── FIleReadaheadMode.java
    │       │   │                   │   ├── HAProxyConstants.java
    │       │   │                   │   ├── LoggerName.java
    │       │   │                   │   └── PermName.java
    │       │   │                   ├── consumer
    │       │   │                   │   ├── ConsumeFromWhere.java
    │       │   │                   │   └── ReceiptHandle.java
    │       │   │                   ├── ControllerConfig.java
    │       │   │                   ├── CountDownLatch2.java
    │       │   │                   ├── fastjson
    │       │   │                   │   └── GenericMapSuperclassDeserializer.java
    │       │   │                   ├── filter
    │       │   │                   │   ├── ExpressionType.java
    │       │   │                   │   ├── FilterContext.java
    │       │   │                   │   ├── impl
    │       │   │                   │   │   ├── Operand.java
    │       │   │                   │   │   ├── Operator.java
    │       │   │                   │   │   ├── Op.java
    │       │   │                   │   │   ├── PolishExpr.java
    │       │   │                   │   │   └── Type.java
    │       │   │                   │   └── MessageFilter.java
    │       │   │                   ├── future
    │       │   │                   │   └── FutureTaskExt.java
    │       │   │                   ├── help
    │       │   │                   │   └── FAQUrl.java
    │       │   │                   ├── hook
    │       │   │                   │   └── FilterCheckHook.java
    │       │   │                   ├── JraftConfig.java
    │       │   │                   ├── KeyBuilder.java
    │       │   │                   ├── LifecycleAwareServiceThread.java
    │       │   │                   ├── LockCallback.java
    │       │   │                   ├── logging
    │       │   │                   │   ├── DefaultJoranConfiguratorExt.java
    │       │   │                   │   └── JoranConfiguratorExt.java
    │       │   │                   ├── message
    │       │   │                   │   ├── MessageAccessor.java
    │       │   │                   │   ├── MessageBatch.java
    │       │   │                   │   ├── MessageClientExt.java
    │       │   │                   │   ├── MessageClientIDSetter.java
    │       │   │                   │   ├── MessageConst.java
    │       │   │                   │   ├── MessageDecoder.java
    │       │   │                   │   ├── MessageExtBatch.java
    │       │   │                   │   ├── MessageExtBrokerInner.java
    │       │   │                   │   ├── MessageExt.java
    │       │   │                   │   ├── MessageId.java
    │       │   │                   │   ├── Message.java
    │       │   │                   │   ├── MessageQueueAssignment.java
    │       │   │                   │   ├── MessageQueueForC.java
    │       │   │                   │   ├── MessageQueue.java
    │       │   │                   │   ├── MessageRequestMode.java
    │       │   │                   │   ├── MessageType.java
    │       │   │                   │   └── MessageVersion.java
    │       │   │                   ├── metrics
    │       │   │                   │   ├── MetricsExporterType.java
    │       │   │                   │   ├── NopLongCounter.java
    │       │   │                   │   ├── NopLongHistogram.java
    │       │   │                   │   ├── NopLongUpDownCounter.java
    │       │   │                   │   ├── NopObservableDoubleGauge.java
    │       │   │                   │   └── NopObservableLongGauge.java
    │       │   │                   ├── MixAll.java
    │       │   │                   ├── MQVersion.java
    │       │   │                   ├── namesrv
    │       │   │                   │   ├── DefaultTopAddressing.java
    │       │   │                   │   ├── NameServerUpdateCallback.java
    │       │   │                   │   ├── NamesrvConfig.java
    │       │   │                   │   ├── NamesrvUtil.java
    │       │   │                   │   └── TopAddressing.java
    │       │   │                   ├── Pair.java
    │       │   │                   ├── PlainAccessConfig.java
    │       │   │                   ├── PopAckConstants.java
    │       │   │                   ├── queue
    │       │   │                   │   ├── ConcurrentTreeMap.java
    │       │   │                   │   └── RoundQueue.java
    │       │   │                   ├── running
    │       │   │                   │   └── RunningStats.java
    │       │   │                   ├── ServiceState.java
    │       │   │                   ├── ServiceThread.java
    │       │   │                   ├── state
    │       │   │                   │   └── StateEventListener.java
    │       │   │                   ├── statistics
    │       │   │                   │   ├── FutureHolder.java
    │       │   │                   │   ├── Interceptor.java
    │       │   │                   │   ├── StatisticsBriefInterceptor.java
    │       │   │                   │   ├── StatisticsBrief.java
    │       │   │                   │   ├── StatisticsItemFormatter.java
    │       │   │                   │   ├── StatisticsItem.java
    │       │   │                   │   ├── StatisticsItemPrinter.java
    │       │   │                   │   ├── StatisticsItemScheduledIncrementPrinter.java
    │       │   │                   │   ├── StatisticsItemScheduledPrinter.java
    │       │   │                   │   ├── StatisticsItemStateGetter.java
    │       │   │                   │   ├── StatisticsKindMeta.java
    │       │   │                   │   └── StatisticsManager.java
    │       │   │                   ├── stats
    │       │   │                   │   ├── MomentStatsItem.java
    │       │   │                   │   ├── MomentStatsItemSet.java
    │       │   │                   │   ├── RTStatsItem.java
    │       │   │                   │   ├── StatsItem.java
    │       │   │                   │   ├── StatsItemSet.java
    │       │   │                   │   ├── Stats.java
    │       │   │                   │   └── StatsSnapshot.java
    │       │   │                   ├── SubscriptionGroupAttributes.java
    │       │   │                   ├── sysflag
    │       │   │                   │   ├── MessageSysFlag.java
    │       │   │                   │   ├── PullSysFlag.java
    │       │   │                   │   ├── SubscriptionSysFlag.java
    │       │   │                   │   └── TopicSysFlag.java
    │       │   │                   ├── SystemClock.java
    │       │   │                   ├── thread
    │       │   │                   │   ├── FutureTaskExtThreadPoolExecutor.java
    │       │   │                   │   ├── ThreadPoolMonitor.java
    │       │   │                   │   ├── ThreadPoolQueueSizeMonitor.java
    │       │   │                   │   ├── ThreadPoolStatusMonitor.java
    │       │   │                   │   └── ThreadPoolWrapper.java
    │       │   │                   ├── ThreadFactoryImpl.java
    │       │   │                   ├── topic
    │       │   │                   │   └── TopicValidator.java
    │       │   │                   ├── TopicAttributes.java
    │       │   │                   ├── TopicConfig.java
    │       │   │                   ├── TopicFilterType.java
    │       │   │                   ├── TopicQueueId.java
    │       │   │                   ├── UnlockCallback.java
    │       │   │                   ├── UtilAll.java
    │       │   │                   └── utils
    │       │   │                       ├── AbstractStartAndShutdown.java
    │       │   │                       ├── BinaryUtil.java
    │       │   │                       ├── ChannelUtil.java
    │       │   │                       ├── CheckpointFile.java
    │       │   │                       ├── CleanupPolicyUtils.java
    │       │   │                       ├── ConcurrentHashMapUtils.java
    │       │   │                       ├── CorrelationIdUtil.java
    │       │   │                       ├── DataConverter.java
    │       │   │                       ├── FastJsonSerializer.java
    │       │   │                       ├── HttpTinyClient.java
    │       │   │                       ├── IOTinyUtils.java
    │       │   │                       ├── MessageUtils.java
    │       │   │                       ├── NameServerAddressUtils.java
    │       │   │                       ├── NetworkUtil.java
    │       │   │                       ├── PositiveAtomicCounter.java
    │       │   │                       ├── QueueTypeUtils.java
    │       │   │                       ├── Serializer.java
    │       │   │                       ├── ServiceProvider.java
    │       │   │                       ├── Shutdown.java
    │       │   │                       ├── StartAndShutdown.java
    │       │   │                       ├── Start.java
    │       │   │                       └── ThreadUtils.java
    │       │   └── resources
    │       │       └── META-INF
    │       │           └── services
    │       │               └── org.apache.rocketmq.logging.ch.qos.logback.classic.spi.Configurator
    │       └── test
    │           ├── java
    │           │   └── org
    │           │       └── apache
    │           │           └── rocketmq
    │           │               └── common
    │           │                   ├── attribute
    │           │                   │   ├── AttributeParserTest.java
    │           │                   │   └── AttributeTest.java
    │           │                   ├── BrokerConfigTest.java
    │           │                   ├── compression
    │           │                   │   └── CompressionTest.java
    │           │                   ├── ConfigManagerTest.java
    │           │                   ├── CountDownLatch2Test.java
    │           │                   ├── KeyBuilderTest.java
    │           │                   ├── message
    │           │                   │   ├── MessageClientIDSetterTest.java
    │           │                   │   ├── MessageDecoderTest.java
    │           │                   │   └── MessageTest.java
    │           │                   ├── MessageBatchTest.java
    │           │                   ├── MessageEncodeDecodeTest.java
    │           │                   ├── MessageExtBrokerInnerTest.java
    │           │                   ├── MixAllTest.java
    │           │                   ├── MQVersionTest.java
    │           │                   ├── NetworkUtilTest.java
    │           │                   ├── ServiceThreadTest.java
    │           │                   ├── stats
    │           │                   │   └── StatsItemSetTest.java
    │           │                   ├── sysflag
    │           │                   │   ├── CompressionFlagTest.java
    │           │                   │   └── PullSysFlagTest.java
    │           │                   ├── topic
    │           │                   │   └── TopicValidatorTest.java
    │           │                   ├── TopicConfigTest.java
    │           │                   ├── UtilAllTest.java
    │           │                   └── utils
    │           │                       ├── ConcurrentHashMapUtilsTest.java
    │           │                       ├── IOTinyUtilsTest.java
    │           │                       └── NameServerAddressUtilsTest.java
    │           └── resources
    │               └── rmq.logback-test.xml
    ├── container
    │   ├── BUILD.bazel
    │   ├── pom.xml
    │   └── src
    │       ├── main
    │       │   └── java
    │       │       └── org
    │       │           └── apache
    │       │               └── rocketmq
    │       │                   └── container
    │       │                       ├── BrokerBootHook.java
    │       │                       ├── BrokerContainerConfig.java
    │       │                       ├── BrokerContainer.java
    │       │                       ├── BrokerContainerProcessor.java
    │       │                       ├── BrokerContainerStartup.java
    │       │                       ├── ContainerClientHouseKeepingService.java
    │       │                       ├── IBrokerContainer.java
    │       │                       ├── InnerBrokerController.java
    │       │                       ├── InnerSalveBrokerController.java
    │       │                       └── logback
    │       │                           └── BrokerLogbackConfigurator.java
    │       └── test
    │           ├── java
    │           │   └── org
    │           │       └── apache
    │           │           └── rocketmq
    │           │               └── container
    │           │                   ├── BrokerContainerStartupTest.java
    │           │                   ├── BrokerContainerTest.java
    │           │                   └── BrokerPreOnlineTest.java
    │           └── resources
    │               └── rmq.logback-test.xml
    ├── CONTRIBUTING.md
    ├── controller
    │   ├── BUILD.bazel
    │   ├── pom.xml
    │   └── src
    │       ├── main
    │       │   ├── java
    │       │   │   └── org
    │       │   │       └── apache
    │       │   │           └── rocketmq
    │       │   │               └── controller
    │       │   │                   ├── BrokerHeartbeatManager.java
    │       │   │                   ├── BrokerHousekeepingService.java
    │       │   │                   ├── Controller.java
    │       │   │                   ├── ControllerManager.java
    │       │   │                   ├── ControllerStartup.java
    │       │   │                   ├── elect
    │       │   │                   │   ├── ElectPolicy.java
    │       │   │                   │   └── impl
    │       │   │                   │       └── DefaultElectPolicy.java
    │       │   │                   ├── helper
    │       │   │                   │   ├── BrokerLifecycleListener.java
    │       │   │                   │   ├── BrokerLiveInfoGetter.java
    │       │   │                   │   └── BrokerValidPredicate.java
    │       │   │                   ├── impl
    │       │   │                   │   ├── closure
    │       │   │                   │   │   └── ControllerClosure.java
    │       │   │                   │   ├── DLedgerController.java
    │       │   │                   │   ├── DLedgerControllerStateMachine.java
    │       │   │                   │   ├── event
    │       │   │                   │   │   ├── AlterSyncStateSetEvent.java
    │       │   │                   │   │   ├── ApplyBrokerIdEvent.java
    │       │   │                   │   │   ├── CleanBrokerDataEvent.java
    │       │   │                   │   │   ├── ControllerResult.java
    │       │   │                   │   │   ├── ElectMasterEvent.java
    │       │   │                   │   │   ├── EventMessage.java
    │       │   │                   │   │   ├── EventSerializer.java
    │       │   │                   │   │   ├── EventType.java
    │       │   │                   │   │   ├── ListEventSerializer.java
    │       │   │                   │   │   └── UpdateBrokerAddressEvent.java
    │       │   │                   │   ├── heartbeat
    │       │   │                   │   │   ├── BrokerIdentityInfo.java
    │       │   │                   │   │   ├── BrokerLiveInfo.java
    │       │   │                   │   │   ├── DefaultBrokerHeartbeatManager.java
    │       │   │                   │   │   └── RaftBrokerHeartBeatManager.java
    │       │   │                   │   ├── JRaftController.java
    │       │   │                   │   ├── JRaftControllerStateMachine.java
    │       │   │                   │   ├── manager
    │       │   │                   │   │   ├── BrokerReplicaInfo.java
    │       │   │                   │   │   ├── RaftReplicasInfoManager.java
    │       │   │                   │   │   ├── ReplicasInfoManager.java
    │       │   │                   │   │   └── SyncStateInfo.java
    │       │   │                   │   └── task
    │       │   │                   │       ├── BrokerCloseChannelRequest.java
    │       │   │                   │       ├── BrokerCloseChannelResponse.java
    │       │   │                   │       ├── CheckNotActiveBrokerRequest.java
    │       │   │                   │       ├── CheckNotActiveBrokerResponse.java
    │       │   │                   │       ├── GetBrokerLiveInfoRequest.java
    │       │   │                   │       ├── GetBrokerLiveInfoResponse.java
    │       │   │                   │       ├── GetSyncStateDataRequest.java
    │       │   │                   │       ├── RaftBrokerHeartBeatEventRequest.java
    │       │   │                   │       └── RaftBrokerHeartBeatEventResponse.java
    │       │   │                   ├── metrics
    │       │   │                   │   ├── ControllerMetricsConstant.java
    │       │   │                   │   └── ControllerMetricsManager.java
    │       │   │                   └── processor
    │       │   │                       └── ControllerRequestProcessor.java
    │       │   └── resources
    │       │       └── rmq.controller.logback.xml
    │       └── test
    │           ├── java
    │           │   └── org
    │           │       └── apache
    │           │           └── rocketmq
    │           │               └── controller
    │           │                   ├── ControllerManagerTest.java
    │           │                   ├── ControllerRequestProcessorTest.java
    │           │                   ├── ControllerTestBase.java
    │           │                   └── impl
    │           │                       ├── DefaultBrokerHeartbeatManagerTest.java
    │           │                       ├── DLedgerControllerTest.java
    │           │                       └── manager
    │           │                           └── ReplicasInfoManagerTest.java
    │           └── resources
    │               └── rmq.logback-test.xml
    ├── dev
    │   └── merge_rocketmq_pr.py
    ├── distribution
    │   ├── benchmark
    │   │   ├── batchproducer.sh
    │   │   ├── consumer.sh
    │   │   ├── producer.sh
    │   │   ├── runclass.sh
    │   │   ├── shutdown.sh
    │   │   └── tproducer.sh
    │   ├── bin
    │   │   ├── cachedog.sh
    │   │   ├── cleancache.sh
    │   │   ├── cleancache.v1.sh
    │   │   ├── controller
    │   │   │   ├── fast-try.cmd
    │   │   │   ├── fast-try-independent-deployment.cmd
    │   │   │   ├── fast-try-independent-deployment.sh
    │   │   │   ├── fast-try-namesrv-plugin.cmd
    │   │   │   ├── fast-try-namesrv-plugin.sh
    │   │   │   └── fast-try.sh
    │   │   ├── dledger
    │   │   │   └── fast-try.sh
    │   │   ├── export.sh
    │   │   ├── mqadmin
    │   │   ├── mqadmin.cmd
    │   │   ├── mqbroker
    │   │   ├── mqbroker.cmd
    │   │   ├── mqbrokercontainer
    │   │   ├── mqbroker.numanode0
    │   │   ├── mqbroker.numanode1
    │   │   ├── mqbroker.numanode2
    │   │   ├── mqbroker.numanode3
    │   │   ├── mqcontroller
    │   │   ├── mqcontroller.cmd
    │   │   ├── mqnamesrv
    │   │   ├── mqnamesrv.cmd
    │   │   ├── mqproxy
    │   │   ├── mqproxy.cmd
    │   │   ├── mqshutdown
    │   │   ├── mqshutdown.cmd
    │   │   ├── os.sh
    │   │   ├── play.cmd
    │   │   ├── play.sh
    │   │   ├── README.md
    │   │   ├── runbroker.cmd
    │   │   ├── runbroker.sh
    │   │   ├── runserver.cmd
    │   │   ├── runserver.sh
    │   │   ├── setcache.sh
    │   │   ├── startfsrv.sh
    │   │   ├── tools.cmd
    │   │   └── tools.sh
    │   ├── conf
    │   │   ├── 2m-2s-async
    │   │   │   ├── broker-a.properties
    │   │   │   ├── broker-a-s.properties
    │   │   │   ├── broker-b.properties
    │   │   │   └── broker-b-s.properties
    │   │   ├── 2m-2s-sync
    │   │   │   ├── broker-a.properties
    │   │   │   ├── broker-a-s.properties
    │   │   │   ├── broker-b.properties
    │   │   │   └── broker-b-s.properties
    │   │   ├── 2m-noslave
    │   │   │   ├── broker-a.properties
    │   │   │   ├── broker-b.properties
    │   │   │   └── broker-trace.properties
    │   │   ├── broker.conf
    │   │   ├── container
    │   │   │   └── 2container-2m-2s
    │   │   │       ├── broker-a-in-container1.conf
    │   │   │       ├── broker-a-in-container2.conf
    │   │   │       ├── broker-b-in-container1.conf
    │   │   │       ├── broker-b-in-container2.conf
    │   │   │       ├── broker-container1.conf
    │   │   │       ├── broker-container2.conf
    │   │   │       └── nameserver.conf
    │   │   ├── controller
    │   │   │   ├── cluster-3n-independent
    │   │   │   │   ├── controller-n0.conf
    │   │   │   │   ├── controller-n1.conf
    │   │   │   │   └── controller-n2.conf
    │   │   │   ├── cluster-3n-namesrv-plugin
    │   │   │   │   ├── namesrv-n0.conf
    │   │   │   │   ├── namesrv-n1.conf
    │   │   │   │   └── namesrv-n2.conf
    │   │   │   ├── controller-standalone.conf
    │   │   │   └── quick-start
    │   │   │       ├── broker-n0.conf
    │   │   │       ├── broker-n1.conf
    │   │   │       └── namesrv.conf
    │   │   ├── dledger
    │   │   │   ├── broker-n0.conf
    │   │   │   ├── broker-n1.conf
    │   │   │   └── broker-n2.conf
    │   │   ├── plain_acl.yml
    │   │   ├── rmq-proxy.json
    │   │   └── tools.yml
    │   ├── LICENSE-BIN
    │   ├── NOTICE-BIN
    │   ├── pom.xml
    │   ├── release-client.xml
    │   └── release.xml
    ├── docs
    │   ├── cn
    │   │   ├── acl
    │   │   │   ├── RocketMQ_Multiple_ACL_Files_设计.md
    │   │   │   └── user_guide.md
    │   │   ├── architecture.md
    │   │   ├── best_practice.md
    │   │   ├── BrokerContainer.md
    │   │   ├── client
    │   │   │   └── java
    │   │   │       ├── API_Reference_DefaultMQProducer.md
    │   │   │       └── API_Reference_ DefaultPullConsumer.md
    │   │   ├── concept.md
    │   │   ├── Configuration_System.md
    │   │   ├── Configuration_TLS.md
    │   │   ├── controller
    │   │   │   ├── deploy.md
    │   │   │   ├── design.md
    │   │   │   ├── persistent_unique_broker_id.md
    │   │   │   └── quick_start.md
    │   │   ├── Debug_In_Idea.md
    │   │   ├── Deployment.md
    │   │   ├── design.md
    │   │   ├── dledger
    │   │   │   ├── deploy_guide.md
    │   │   │   └── quick_start.md
    │   │   ├── Example_Batch.md
    │   │   ├── Example_Compaction_Topic_cn.md
    │   │   ├── Example_CreateTopic.md
    │   │   ├── Example_Delay.md
    │   │   ├── Example_LMQ.md
    │   │   ├── Example_Simple_cn.md
    │   │   ├── FAQ.md
    │   │   ├── features.md
    │   │   ├── image
    │   │   │   ├── consumer_reply.png
    │   │   │   ├── controller
    │   │   │   │   ├── controller_design_1.png
    │   │   │   │   ├── controller_design_2.png
    │   │   │   │   ├── controller_design_3.png
    │   │   │   │   ├── controller_design_4.png
    │   │   │   │   ├── controller_design_5.png
    │   │   │   │   ├── controller_design_6.png
    │   │   │   │   ├── persistent_unique_broker_id
    │   │   │   │   │   ├── fail_apply_broker_id.png
    │   │   │   │   │   ├── fail_create_metadata_file_and_delete_temp.png
    │   │   │   │   │   ├── fail_create_temp_metadata_file.png
    │   │   │   │   │   ├── normal_restart.png
    │   │   │   │   │   ├── register_process.png
    │   │   │   │   │   └── register_state_transfer.png
    │   │   │   │   └── quick-start
    │   │   │   │       ├── changemaster.png
    │   │   │   │       ├── controller.png
    │   │   │   │       ├── epoch.png
    │   │   │   │       └── syncstateset.png
    │   │   │   ├── Idea_config_broker.png
    │   │   │   ├── Idea_config_nameserver.png
    │   │   │   ├── LMQ_1.png
    │   │   │   ├── producer_send_request.png
    │   │   │   ├── rocketmq_architecture_1.png
    │   │   │   ├── rocketmq_architecture_2.png
    │   │   │   ├── rocketmq_architecture_3.png
    │   │   │   ├── rocketmq_design_10.png
    │   │   │   ├── rocketmq_design_11.png
    │   │   │   ├── rocketmq_design_12.png
    │   │   │   ├── rocketmq_design_13.png
    │   │   │   ├── rocketmq_design_1.png
    │   │   │   ├── rocketmq_design_2.png
    │   │   │   ├── rocketmq_design_3.png
    │   │   │   ├── rocketmq_design_4.png
    │   │   │   ├── rocketmq_design_5.png
    │   │   │   ├── rocketmq_design_6.png
    │   │   │   ├── rocketmq_design_7.png
    │   │   │   ├── rocketmq_design_8.png
    │   │   │   └── rocketmq_design_9.png
    │   │   ├── msg_trace
    │   │   │   └── user_guide.md
    │   │   ├── operation.md
    │   │   ├── proxy
    │   │   │   └── deploy_guide.md
    │   │   ├── QuorumACK.md
    │   │   ├── README.md
    │   │   ├── RocketMQ_Example.md
    │   │   ├── rpc_request.md
    │   │   ├── SlaveActingMasterMode.md
    │   │   └── statictopic
    │   │       ├── RocketMQ_Static_Topic_Logic_Queue_设计.md
    │   │       └── The_Scope_Of_Static_Topic.md
    │   └── en
    │       ├── acl
    │       │   └── Operations_ACL.md
    │       ├── architecture.md
    │       ├── best_practice.md
    │       ├── client
    │       │   └── java
    │       │       └── API_Reference_DefaultMQProducer.md
    │       ├── CLITools.md
    │       ├── Concept.md
    │       ├── Configuration_Client.md
    │       ├── Configuration_System.md
    │       ├── Configuration_TLS.md
    │       ├── controller
    │       │   ├── deploy.md
    │       │   ├── design.md
    │       │   ├── persistent_unique_broker_id.md
    │       │   └── quick_start.md
    │       ├── Debug_In_Idea.md
    │       ├── Deployment.md
    │       ├── Design_Filter.md
    │       ├── Design_LoadBlancing.md
    │       ├── design.md
    │       ├── Design_Query.md
    │       ├── Design_Remoting.md
    │       ├── Design_Store.md
    │       ├── Design_Trancation.md
    │       ├── dledger
    │       │   ├── deploy_guide.md
    │       │   └── quick_start.md
    │       ├── Example_Batch.md
    │       ├── Example_Compaction_Topic.md
    │       ├── Example_CreateTopic.md
    │       ├── Example_Delay.md
    │       ├── Example_Filter.md
    │       ├── Example_OpenMessaging.md
    │       ├── Example_Orderly.md
    │       ├── Example_Simple.md
    │       ├── Example_Transaction.md
    │       ├── FAQ.md
    │       ├── Feature.md
    │       ├── image
    │       │   ├── controller
    │       │   │   ├── controller_design_1.png
    │       │   │   ├── controller_design_2.png
    │       │   │   ├── controller_design_3.png
    │       │   │   ├── controller_design_4.png
    │       │   │   ├── controller_design_5.png
    │       │   │   ├── controller_design_6.png
    │       │   │   ├── persistent_unique_broker_id
    │       │   │   │   ├── fail_apply_broker_id.png
    │       │   │   │   ├── fail_create_metadata_file_and_delete_temp.png
    │       │   │   │   ├── fail_create_temp_metadata_file.png
    │       │   │   │   ├── normal_restart.png
    │       │   │   │   ├── register_process.png
    │       │   │   │   └── register_state_transfer.png
    │       │   │   └── quick-start
    │       │   │       ├── changemaster.png
    │       │   │       ├── controller.png
    │       │   │       ├── epoch.png
    │       │   │       └── syncstateset.png
    │       │   ├── rocketmq_architecture_1.png
    │       │   ├── rocketmq_architecture_2.png
    │       │   └── rocketmq_architecture_3.png
    │       ├── images
    │       │   ├── rocketmq_design_7.png
    │       │   ├── rocketmq_design_message_query.png
    │       │   ├── rocketmq_proxy_cluster_mode.png
    │       │   ├── rocketmq_proxy_local_mode.png
    │       │   ├── rocketmq_storage_arch.png
    │       │   └── rocketmq_storage_flush.png
    │       ├── msg_trace
    │       │   └── user_guide.md
    │       ├── operation.md
    │       ├── Operations_Broker.md
    │       ├── Operations_Consumer.md
    │       ├── Operations_Producer.md
    │       ├── Operations_Trace.md
    │       ├── proxy
    │       │   └── deploy_guide.md
    │       ├── QuorumACK.md
    │       ├── README.md
    │       ├── RocketMQ_Example.md
    │       └── Troubleshoopting.md
    ├── example
    │   ├── pom.xml
    │   └── src
    │       └── main
    │           └── java
    │               └── org
    │                   └── apache
    │                       └── rocketmq
    │                           └── example
    │                               ├── batch
    │                               │   ├── SimpleBatchProducer.java
    │                               │   └── SplitBatchProducer.java
    │                               ├── benchmark
    │                               │   ├── AclClient.java
    │                               │   ├── BatchProducer.java
    │                               │   ├── Consumer.java
    │                               │   ├── Producer.java
    │                               │   ├── timer
    │                               │   │   ├── TimerConsumer.java
    │                               │   │   └── TimerProducer.java
    │                               │   └── TransactionProducer.java
    │                               ├── broadcast
    │                               │   └── PushConsumer.java
    │                               ├── filter
    │                               │   ├── SqlFilterConsumer.java
    │                               │   ├── SqlFilterProducer.java
    │                               │   ├── TagFilterConsumer.java
    │                               │   └── TagFilterProducer.java
    │                               ├── namespace
    │                               │   ├── ProducerWithNamespace.java
    │                               │   ├── PullConsumerWithNamespace.java
    │                               │   └── PushConsumerWithNamespace.java
    │                               ├── openmessaging
    │                               │   ├── SimpleProducer.java
    │                               │   ├── SimplePullConsumer.java
    │                               │   └── SimplePushConsumer.java
    │                               ├── operation
    │                               │   ├── Consumer.java
    │                               │   └── Producer.java
    │                               ├── ordermessage
    │                               │   ├── Consumer.java
    │                               │   └── Producer.java
    │                               ├── quickstart
    │                               │   ├── Consumer.java
    │                               │   └── Producer.java
    │                               ├── rpc
    │                               │   ├── AsyncRequestProducer.java
    │                               │   ├── RequestProducer.java
    │                               │   └── ResponseConsumer.java
    │                               ├── schedule
    │                               │   ├── ScheduledMessageConsumer.java
    │                               │   ├── ScheduledMessageProducer.java
    │                               │   ├── TimerMessageConsumer.java
    │                               │   └── TimerMessageProducer.java
    │                               ├── simple
    │                               │   ├── AclClient.java
    │                               │   ├── AsyncProducer.java
    │                               │   ├── CachedQueue.java
    │                               │   ├── LitePullConsumerAssign.java
    │                               │   ├── LitePullConsumerAssignWithSubExpression.java
    │                               │   ├── LitePullConsumerSubscribe.java
    │                               │   ├── OnewayProducer.java
    │                               │   ├── PopConsumer.java
    │                               │   ├── Producer.java
    │                               │   ├── PullConsumer.java
    │                               │   ├── PullScheduleService.java
    │                               │   ├── PushConsumer.java
    │                               │   └── RandomAsyncCommit.java
    │                               ├── tracemessage
    │                               │   ├── OpenTracingProducer.java
    │                               │   ├── OpenTracingPushConsumer.java
    │                               │   ├── OpenTracingTransactionProducer.java
    │                               │   ├── TraceProducer.java
    │                               │   └── TracePushConsumer.java
    │                               └── transaction
    │                                   ├── TransactionListenerImpl.java
    │                                   └── TransactionProducer.java
    ├── filter
    │   ├── BUILD.bazel
    │   ├── pom.xml
    │   └── src
    │       ├── main
    │       │   └── java
    │       │       └── org
    │       │           └── apache
    │       │               └── rocketmq
    │       │                   └── filter
    │       │                       ├── constant
    │       │                       │   └── UnaryType.java
    │       │                       ├── expression
    │       │                       │   ├── BinaryExpression.java
    │       │                       │   ├── BooleanConstantExpression.java
    │       │                       │   ├── BooleanExpression.java
    │       │                       │   ├── ComparisonExpression.java
    │       │                       │   ├── ConstantExpression.java
    │       │                       │   ├── EmptyEvaluationContext.java
    │       │                       │   ├── EvaluationContext.java
    │       │                       │   ├── Expression.java
    │       │                       │   ├── LogicExpression.java
    │       │                       │   ├── MQFilterException.java
    │       │                       │   ├── NowExpression.java
    │       │                       │   ├── PropertyExpression.java
    │       │                       │   ├── UnaryExpression.java
    │       │                       │   └── UnaryInExpression.java
    │       │                       ├── FilterFactory.java
    │       │                       ├── FilterSpi.java
    │       │                       ├── parser
    │       │                       │   ├── ParseException.java
    │       │                       │   ├── SelectorParserConstants.java
    │       │                       │   ├── SelectorParser.java
    │       │                       │   ├── SelectorParser.jj
    │       │                       │   ├── SelectorParserTokenManager.java
    │       │                       │   ├── SimpleCharStream.java
    │       │                       │   ├── Token.java
    │       │                       │   └── TokenMgrError.java
    │       │                       ├── SqlFilter.java
    │       │                       └── util
    │       │                           ├── BitsArray.java
    │       │                           ├── BloomFilterData.java
    │       │                           └── BloomFilter.java
    │       └── test
    │           ├── java
    │           │   └── org
    │           │       └── apache
    │           │           └── rocketmq
    │           │               └── filter
    │           │                   ├── BitsArrayTest.java
    │           │                   ├── BloomFilterTest.java
    │           │                   ├── ExpressionTest.java
    │           │                   ├── FilterSpiTest.java
    │           │                   └── ParserTest.java
    │           └── resources
    │               └── rmq.logback-test.xml
    ├── LICENSE
    ├── namesrv
    │   ├── BUILD.bazel
    │   ├── pom.xml
    │   └── src
    │       ├── main
    │       │   ├── java
    │       │   │   └── org
    │       │   │       └── apache
    │       │   │           └── rocketmq
    │       │   │               └── namesrv
    │       │   │                   ├── kvconfig
    │       │   │                   │   ├── KVConfigManager.java
    │       │   │                   │   └── KVConfigSerializeWrapper.java
    │       │   │                   ├── NamesrvController.java
    │       │   │                   ├── NamesrvStartup.java
    │       │   │                   ├── processor
    │       │   │                   │   ├── ClientRequestProcessor.java
    │       │   │                   │   ├── ClusterTestRequestProcessor.java
    │       │   │                   │   └── DefaultRequestProcessor.java
    │       │   │                   ├── route
    │       │   │                   │   └── ZoneRouteRPCHook.java
    │       │   │                   └── routeinfo
    │       │   │                       ├── BatchUnregistrationService.java
    │       │   │                       ├── BrokerHousekeepingService.java
    │       │   │                       └── RouteInfoManager.java
    │       │   └── resources
    │       │       └── rmq.namesrv.logback.xml
    │       └── test
    │           ├── java
    │           │   └── org
    │           │       └── apache
    │           │           └── rocketmq
    │           │               └── namesrv
    │           │                   ├── kvconfig
    │           │                   │   ├── KVConfigManagerTest.java
    │           │                   │   └── KVConfigSerializeWrapperTest.java
    │           │                   ├── NameServerInstanceTest.java
    │           │                   ├── NamesrvControllerTest.java
    │           │                   ├── NamesrvStartupTest.java
    │           │                   ├── processor
    │           │                   │   ├── ClusterTestRequestProcessorTest.java
    │           │                   │   └── RequestProcessorTest.java
    │           │                   └── routeinfo
    │           │                       ├── BrokerHousekeepingServiceTest.java
    │           │                       ├── GetRouteInfoBenchmark.java
    │           │                       ├── RegisterBrokerBenchmark.java
    │           │                       ├── RouteInfoManagerBrokerPermTest.java
    │           │                       ├── RouteInfoManagerBrokerRegisterTest.java
    │           │                       ├── RouteInfoManagerNewTest.java
    │           │                       ├── RouteInfoManagerStaticRegisterTest.java
    │           │                       ├── RouteInfoManagerTestBase.java
    │           │                       └── RouteInfoManagerTest.java
    │           └── resources
    │               └── rmq.logback-test.xml
    ├── NOTICE
    ├── openmessaging
    │   ├── pom.xml
    │   └── src
    │       ├── main
    │       │   └── java
    │       │       └── io
    │       │           └── openmessaging
    │       │               └── rocketmq
    │       │                   ├── config
    │       │                   │   └── ClientConfig.java
    │       │                   ├── consumer
    │       │                   │   ├── LocalMessageCache.java
    │       │                   │   ├── PullConsumerImpl.java
    │       │                   │   └── PushConsumerImpl.java
    │       │                   ├── domain
    │       │                   │   ├── BytesMessageImpl.java
    │       │                   │   ├── ConsumeRequest.java
    │       │                   │   ├── NonStandardKeys.java
    │       │                   │   ├── RocketMQConstants.java
    │       │                   │   └── SendResultImpl.java
    │       │                   ├── MessagingAccessPointImpl.java
    │       │                   ├── producer
    │       │                   │   ├── AbstractOMSProducer.java
    │       │                   │   └── ProducerImpl.java
    │       │                   ├── promise
    │       │                   │   ├── DefaultPromise.java
    │       │                   │   └── FutureState.java
    │       │                   └── utils
    │       │                       ├── BeanUtils.java
    │       │                       └── OMSUtil.java
    │       └── test
    │           ├── java
    │           │   └── io
    │           │       └── openmessaging
    │           │           └── rocketmq
    │           │               ├── consumer
    │           │               │   ├── LocalMessageCacheTest.java
    │           │               │   ├── PullConsumerImplTest.java
    │           │               │   └── PushConsumerImplTest.java
    │           │               ├── producer
    │           │               │   └── ProducerImplTest.java
    │           │               ├── promise
    │           │               │   └── DefaultPromiseTest.java
    │           │               └── utils
    │           │                   └── BeanUtilsTest.java
    │           └── resources
    │               └── rmq.logback-test.xml
    ├── pom.xml
    ├── proxy
    │   ├── BUILD.bazel
    │   ├── pom.xml
    │   ├── README.md
    │   └── src
    │       ├── main
    │       │   ├── java
    │       │   │   └── org
    │       │   │       └── apache
    │       │   │           └── rocketmq
    │       │   │               └── proxy
    │       │   │                   ├── CommandLineArgument.java
    │       │   │                   ├── common
    │       │   │                   │   ├── AbstractCacheLoader.java
    │       │   │                   │   ├── Address.java
    │       │   │                   │   ├── channel
    │       │   │                   │   │   └── ChannelHelper.java
    │       │   │                   │   ├── ContextVariable.java
    │       │   │                   │   ├── MessageReceiptHandle.java
    │       │   │                   │   ├── ProxyContext.java
    │       │   │                   │   ├── ProxyExceptionCode.java
    │       │   │                   │   ├── ProxyException.java
    │       │   │                   │   ├── ReceiptHandleGroup.java
    │       │   │                   │   ├── ReceiptHandleGroupKey.java
    │       │   │                   │   ├── RenewEvent.java
    │       │   │                   │   ├── RenewStrategyPolicy.java
    │       │   │                   │   └── utils
    │       │   │                   │       ├── ExceptionUtils.java
    │       │   │                   │       ├── FilterUtils.java
    │       │   │                   │       ├── FutureUtils.java
    │       │   │                   │       └── ProxyUtils.java
    │       │   │                   ├── config
    │       │   │                   │   ├── ConfigFile.java
    │       │   │                   │   ├── Configuration.java
    │       │   │                   │   ├── ConfigurationManager.java
    │       │   │                   │   ├── MetricCollectorMode.java
    │       │   │                   │   └── ProxyConfig.java
    │       │   │                   ├── grpc
    │       │   │                   │   ├── constant
    │       │   │                   │   │   └── AttributeKeys.java
    │       │   │                   │   ├── GrpcServerBuilder.java
    │       │   │                   │   ├── GrpcServer.java
    │       │   │                   │   ├── interceptor
    │       │   │                   │   │   ├── AuthenticationInterceptor.java
    │       │   │                   │   │   ├── ContextInterceptor.java
    │       │   │                   │   │   ├── GlobalExceptionInterceptor.java
    │       │   │                   │   │   ├── HeaderInterceptor.java
    │       │   │                   │   │   ├── InterceptorConstants.java
    │       │   │                   │   │   └── RequestMapping.java
    │       │   │                   │   ├── ProxyAndTlsProtocolNegotiator.java
    │       │   │                   │   └── v2
    │       │   │                   │       ├── AbstractMessingActivity.java
    │       │   │                   │       ├── channel
    │       │   │                   │       │   ├── GrpcChannelManager.java
    │       │   │                   │       │   └── GrpcClientChannel.java
    │       │   │                   │       ├── client
    │       │   │                   │       │   └── ClientActivity.java
    │       │   │                   │       ├── common
    │       │   │                   │       │   ├── GrpcClientSettingsManager.java
    │       │   │                   │       │   ├── GrpcConverter.java
    │       │   │                   │       │   ├── GrpcProxyException.java
    │       │   │                   │       │   ├── GrpcValidator.java
    │       │   │                   │       │   ├── ResponseBuilder.java
    │       │   │                   │       │   └── ResponseWriter.java
    │       │   │                   │       ├── consumer
    │       │   │                   │       │   ├── AckMessageActivity.java
    │       │   │                   │       │   ├── ChangeInvisibleDurationActivity.java
    │       │   │                   │       │   ├── PopMessageResultFilterImpl.java
    │       │   │                   │       │   ├── ReceiveMessageActivity.java
    │       │   │                   │       │   └── ReceiveMessageResponseStreamWriter.java
    │       │   │                   │       ├── ContextStreamObserver.java
    │       │   │                   │       ├── DefaultGrpcMessingActivity.java
    │       │   │                   │       ├── GrpcMessagingApplication.java
    │       │   │                   │       ├── GrpcMessingActivity.java
    │       │   │                   │       ├── producer
    │       │   │                   │       │   ├── ForwardMessageToDLQActivity.java
    │       │   │                   │       │   └── SendMessageActivity.java
    │       │   │                   │       ├── route
    │       │   │                   │       │   └── RouteActivity.java
    │       │   │                   │       └── transaction
    │       │   │                   │           └── EndTransactionActivity.java
    │       │   │                   ├── metrics
    │       │   │                   │   ├── ProxyMetricsConstant.java
    │       │   │                   │   └── ProxyMetricsManager.java
    │       │   │                   ├── processor
    │       │   │                   │   ├── AbstractProcessor.java
    │       │   │                   │   ├── BatchAckResult.java
    │       │   │                   │   ├── channel
    │       │   │                   │   │   ├── ChannelExtendAttributeGetter.java
    │       │   │                   │   │   ├── ChannelProtocolType.java
    │       │   │                   │   │   ├── RemoteChannelConverter.java
    │       │   │                   │   │   ├── RemoteChannel.java
    │       │   │                   │   │   └── RemoteChannelSerializer.java
    │       │   │                   │   ├── ClientProcessor.java
    │       │   │                   │   ├── ConsumerProcessor.java
    │       │   │                   │   ├── DefaultMessagingProcessor.java
    │       │   │                   │   ├── MessagingProcessor.java
    │       │   │                   │   ├── PopMessageResultFilter.java
    │       │   │                   │   ├── ProducerProcessor.java
    │       │   │                   │   ├── QueueSelector.java
    │       │   │                   │   ├── ReceiptHandleProcessor.java
    │       │   │                   │   ├── RequestBrokerProcessor.java
    │       │   │                   │   ├── TransactionProcessor.java
    │       │   │                   │   ├── TransactionStatus.java
    │       │   │                   │   └── validator
    │       │   │                   │       ├── DefaultTopicMessageTypeValidator.java
    │       │   │                   │       └── TopicMessageTypeValidator.java
    │       │   │                   ├── ProxyMode.java
    │       │   │                   ├── ProxyStartup.java
    │       │   │                   ├── remoting
    │       │   │                   │   ├── activity
    │       │   │                   │   │   ├── AbstractRemotingActivity.java
    │       │   │                   │   │   ├── AckMessageActivity.java
    │       │   │                   │   │   ├── ChangeInvisibleTimeActivity.java
    │       │   │                   │   │   ├── ClientManagerActivity.java
    │       │   │                   │   │   ├── ConsumerManagerActivity.java
    │       │   │                   │   │   ├── GetTopicRouteActivity.java
    │       │   │                   │   │   ├── PopMessageActivity.java
    │       │   │                   │   │   ├── PullMessageActivity.java
    │       │   │                   │   │   ├── SendMessageActivity.java
    │       │   │                   │   │   └── TransactionActivity.java
    │       │   │                   │   ├── channel
    │       │   │                   │   │   ├── RemotingChannel.java
    │       │   │                   │   │   └── RemotingChannelManager.java
    │       │   │                   │   ├── ClientHousekeepingService.java
    │       │   │                   │   ├── common
    │       │   │                   │   │   └── RemotingConverter.java
    │       │   │                   │   ├── MultiProtocolRemotingServer.java
    │       │   │                   │   ├── MultiProtocolTlsHelper.java
    │       │   │                   │   ├── pipeline
    │       │   │                   │   │   ├── AuthenticationPipeline.java
    │       │   │                   │   │   └── RequestPipeline.java
    │       │   │                   │   ├── protocol
    │       │   │                   │   │   ├── http2proxy
    │       │   │                   │   │   │   ├── HAProxyMessageForwarder.java
    │       │   │                   │   │   │   ├── Http2ProtocolProxyHandler.java
    │       │   │                   │   │   │   ├── Http2ProxyBackendHandler.java
    │       │   │                   │   │   │   └── Http2ProxyFrontendHandler.java
    │       │   │                   │   │   ├── ProtocolHandler.java
    │       │   │                   │   │   ├── ProtocolNegotiationHandler.java
    │       │   │                   │   │   └── remoting
    │       │   │                   │   │       └── RemotingProtocolHandler.java
    │       │   │                   │   ├── RemotingProtocolServer.java
    │       │   │                   │   └── RemotingProxyOutClient.java
    │       │   │                   └── service
    │       │   │                       ├── admin
    │       │   │                       │   ├── AdminService.java
    │       │   │                       │   └── DefaultAdminService.java
    │       │   │                       ├── channel
    │       │   │                       │   ├── ChannelManager.java
    │       │   │                       │   ├── InvocationChannel.java
    │       │   │                       │   ├── InvocationContextInterface.java
    │       │   │                       │   ├── InvocationContext.java
    │       │   │                       │   ├── SimpleChannelHandlerContext.java
    │       │   │                       │   └── SimpleChannel.java
    │       │   │                       ├── client
    │       │   │                       │   ├── ClusterConsumerManager.java
    │       │   │                       │   └── ProxyClientRemotingProcessor.java
    │       │   │                       ├── ClusterServiceManager.java
    │       │   │                       ├── LocalServiceManager.java
    │       │   │                       ├── message
    │       │   │                       │   ├── ClusterMessageService.java
    │       │   │                       │   ├── LocalMessageService.java
    │       │   │                       │   ├── LocalRemotingCommand.java
    │       │   │                       │   ├── MessageService.java
    │       │   │                       │   └── ReceiptHandleMessage.java
    │       │   │                       ├── metadata
    │       │   │                       │   ├── ClusterMetadataService.java
    │       │   │                       │   ├── LocalMetadataService.java
    │       │   │                       │   └── MetadataService.java
    │       │   │                       ├── receipt
    │       │   │                       │   ├── DefaultReceiptHandleManager.java
    │       │   │                       │   └── ReceiptHandleManager.java
    │       │   │                       ├── relay
    │       │   │                       │   ├── AbstractProxyRelayService.java
    │       │   │                       │   ├── ClusterProxyRelayService.java
    │       │   │                       │   ├── LocalProxyRelayService.java
    │       │   │                       │   ├── ProxyChannel.java
    │       │   │                       │   ├── ProxyRelayResult.java
    │       │   │                       │   ├── ProxyRelayService.java
    │       │   │                       │   └── RelayData.java
    │       │   │                       ├── route
    │       │   │                       │   ├── AddressableMessageQueue.java
    │       │   │                       │   ├── ClusterTopicRouteService.java
    │       │   │                       │   ├── LocalTopicRouteService.java
    │       │   │                       │   ├── MessageQueueSelector.java
    │       │   │                       │   ├── MessageQueueView.java
    │       │   │                       │   ├── ProxyTopicRouteData.java
    │       │   │                       │   ├── TopicRouteHelper.java
    │       │   │                       │   ├── TopicRouteService.java
    │       │   │                       │   └── TopicRouteWrapper.java
    │       │   │                       ├── ServiceManagerFactory.java
    │       │   │                       ├── ServiceManager.java
    │       │   │                       ├── sysmessage
    │       │   │                       │   ├── AbstractSystemMessageSyncer.java
    │       │   │                       │   ├── HeartbeatSyncerData.java
    │       │   │                       │   ├── HeartbeatSyncer.java
    │       │   │                       │   └── HeartbeatType.java
    │       │   │                       └── transaction
    │       │   │                           ├── AbstractTransactionService.java
    │       │   │                           ├── ClusterTransactionService.java
    │       │   │                           ├── EndTransactionRequestData.java
    │       │   │                           ├── LocalTransactionService.java
    │       │   │                           ├── TransactionData.java
    │       │   │                           ├── TransactionDataManager.java
    │       │   │                           └── TransactionService.java
    │       │   └── resources
    │       │       └── rmq.proxy.logback.xml
    │       └── test
    │           ├── java
    │           │   └── org
    │           │       └── apache
    │           │           └── rocketmq
    │           │               └── proxy
    │           │                   ├── common
    │           │                   │   ├── ReceiptHandleGroupTest.java
    │           │                   │   ├── RenewStrategyPolicyTest.java
    │           │                   │   └── utils
    │           │                   │       └── FilterUtilTest.java
    │           │                   ├── config
    │           │                   │   ├── ConfigurationManagerTest.java
    │           │                   │   ├── InitConfigTest.java
    │           │                   │   └── MetricCollectorModeTest.java
    │           │                   ├── grpc
    │           │                   │   ├── ProxyAndTlsProtocolNegotiatorTest.java
    │           │                   │   └── v2
    │           │                   │       ├── AbstractMessingActivityTest.java
    │           │                   │       ├── BaseActivityTest.java
    │           │                   │       ├── channel
    │           │                   │       │   └── GrpcClientChannelTest.java
    │           │                   │       ├── client
    │           │                   │       │   └── ClientActivityTest.java
    │           │                   │       ├── common
    │           │                   │       │   ├── GrpcClientSettingsManagerTest.java
    │           │                   │       │   ├── GrpcConverterTest.java
    │           │                   │       │   └── GrpcValidatorTest.java
    │           │                   │       ├── consumer
    │           │                   │       │   ├── AckMessageActivityTest.java
    │           │                   │       │   ├── ChangeInvisibleDurationActivityTest.java
    │           │                   │       │   ├── ReceiveMessageActivityTest.java
    │           │                   │       │   └── ReceiveMessageResponseStreamWriterTest.java
    │           │                   │       ├── GrpcMessagingApplicationTest.java
    │           │                   │       ├── producer
    │           │                   │       │   ├── ForwardMessageToDLQActivityTest.java
    │           │                   │       │   └── SendMessageActivityTest.java
    │           │                   │       ├── route
    │           │                   │       │   └── RouteActivityTest.java
    │           │                   │       └── transaction
    │           │                   │           └── EndTransactionActivityTest.java
    │           │                   ├── processor
    │           │                   │   ├── BaseProcessorTest.java
    │           │                   │   ├── channel
    │           │                   │   │   └── RemoteChannelTest.java
    │           │                   │   ├── ConsumerProcessorTest.java
    │           │                   │   ├── ProducerProcessorTest.java
    │           │                   │   └── TransactionProcessorTest.java
    │           │                   ├── ProxyStartupTest.java
    │           │                   ├── remoting
    │           │                   │   ├── activity
    │           │                   │   │   ├── AbstractRemotingActivityTest.java
    │           │                   │   │   ├── PullMessageActivityTest.java
    │           │                   │   │   └── SendMessageActivityTest.java
    │           │                   │   ├── channel
    │           │                   │   │   ├── RemotingChannelManagerTest.java
    │           │                   │   │   └── RemotingChannelTest.java
    │           │                   │   └── protocol
    │           │                   │       └── http2proxy
    │           │                   │           ├── HAProxyMessageForwarderTest.java
    │           │                   │           └── Http2ProtocolProxyHandlerTest.java
    │           │                   └── service
    │           │                       ├── admin
    │           │                       │   └── DefaultAdminServiceTest.java
    │           │                       ├── BaseServiceTest.java
    │           │                       ├── message
    │           │                       │   ├── ClusterMessageServiceTest.java
    │           │                       │   └── LocalMessageServiceTest.java
    │           │                       ├── metadata
    │           │                       │   └── ClusterMetadataServiceTest.java
    │           │                       ├── mqclient
    │           │                       │   ├── MQClientAPIExtTest.java
    │           │                       │   └── ProxyClientRemotingProcessorTest.java
    │           │                       ├── receipt
    │           │                       │   └── DefaultReceiptHandleManagerTest.java
    │           │                       ├── relay
    │           │                       │   ├── LocalProxyRelayServiceTest.java
    │           │                       │   └── ProxyChannelTest.java
    │           │                       ├── route
    │           │                       │   ├── ClusterTopicRouteServiceTest.java
    │           │                       │   ├── LocalTopicRouteServiceTest.java
    │           │                       │   └── MessageQueueSelectorTest.java
    │           │                       ├── sysmessage
    │           │                       │   └── HeartbeatSyncerTest.java
    │           │                       └── transaction
    │           │                           ├── AbstractTransactionServiceTest.java
    │           │                           ├── ClusterTransactionServiceTest.java
    │           │                           └── TransactionDataManagerTest.java
    │           └── resources
    │               ├── mockito-extensions
    │               │   └── org.mockito.plugins.MockMaker
    │               ├── rmq.logback-test.xml
    │               └── rmq-proxy-home
    │                   └── conf
    │                       ├── broker.conf
    │                       ├── logback_proxy.xml
    │                       └── rmq-proxy.json
    ├── README.md
    ├── remoting
    │   ├── BUILD.bazel
    │   ├── pom.xml
    │   └── src
    │       ├── main
    │       │   └── java
    │       │       └── org
    │       │           └── apache
    │       │               └── rocketmq
    │       │                   └── remoting
    │       │                       ├── annotation
    │       │                       │   ├── CFNotNull.java
    │       │                       │   └── CFNullable.java
    │       │                       ├── ChannelEventListener.java
    │       │                       ├── CommandCustomHeader.java
    │       │                       ├── common
    │       │                       │   ├── HeartbeatV2Result.java
    │       │                       │   ├── RemotingHelper.java
    │       │                       │   ├── SemaphoreReleaseOnlyOnce.java
    │       │                       │   ├── ServiceThread.java
    │       │                       │   └── TlsMode.java
    │       │                       ├── Configuration.java
    │       │                       ├── exception
    │       │                       │   ├── RemotingCommandException.java
    │       │                       │   ├── RemotingConnectException.java
    │       │                       │   ├── RemotingException.java
    │       │                       │   ├── RemotingSendRequestException.java
    │       │                       │   ├── RemotingTimeoutException.java
    │       │                       │   └── RemotingTooMuchRequestException.java
    │       │                       ├── InvokeCallback.java
    │       │                       ├── metrics
    │       │                       │   ├── RemotingMetricsConstant.java
    │       │                       │   └── RemotingMetricsManager.java
    │       │                       ├── netty
    │       │                       │   ├── AttributeKeys.java
    │       │                       │   ├── FileRegionEncoder.java
    │       │                       │   ├── NettyClientConfig.java
    │       │                       │   ├── NettyDecoder.java
    │       │                       │   ├── NettyEncoder.java
    │       │                       │   ├── NettyEvent.java
    │       │                       │   ├── NettyEventType.java
    │       │                       │   ├── NettyLogger.java
    │       │                       │   ├── NettyRemotingAbstract.java
    │       │                       │   ├── NettyRemotingClient.java
    │       │                       │   ├── NettyRemotingServer.java
    │       │                       │   ├── NettyRequestProcessor.java
    │       │                       │   ├── NettyServerConfig.java
    │       │                       │   ├── NettySystemConfig.java
    │       │                       │   ├── RemotingCodeDistributionHandler.java
    │       │                       │   ├── RemotingResponseCallback.java
    │       │                       │   ├── RequestTask.java
    │       │                       │   ├── ResponseFuture.java
    │       │                       │   ├── TlsHelper.java
    │       │                       │   └── TlsSystemConfig.java
    │       │                       ├── protocol
    │       │                       │   ├── admin
    │       │                       │   │   ├── ConsumeStats.java
    │       │                       │   │   ├── OffsetWrapper.java
    │       │                       │   │   ├── RollbackStats.java
    │       │                       │   │   ├── TopicOffset.java
    │       │                       │   │   └── TopicStatsTable.java
    │       │                       │   ├── BitSetSerializerDeserializer.java
    │       │                       │   ├── body
    │       │                       │   │   ├── BatchAck.java
    │       │                       │   │   ├── BatchAckMessageRequestBody.java
    │       │                       │   │   ├── BrokerMemberGroup.java
    │       │                       │   │   ├── BrokerReplicasInfo.java
    │       │                       │   │   ├── BrokerStatsData.java
    │       │                       │   │   ├── BrokerStatsItem.java
    │       │                       │   │   ├── CheckClientRequestBody.java
    │       │                       │   │   ├── ClusterAclVersionInfo.java
    │       │                       │   │   ├── ClusterInfo.java
    │       │                       │   │   ├── CMResult.java
    │       │                       │   │   ├── Connection.java
    │       │                       │   │   ├── ConsumeByWho.java
    │       │                       │   │   ├── ConsumeMessageDirectlyResult.java
    │       │                       │   │   ├── ConsumeQueueData.java
    │       │                       │   │   ├── ConsumerConnection.java
    │       │                       │   │   ├── ConsumerOffsetSerializeWrapper.java
    │       │                       │   │   ├── ConsumerRunningInfo.java
    │       │                       │   │   ├── ConsumeStatsList.java
    │       │                       │   │   ├── ConsumeStatus.java
    │       │                       │   │   ├── ElectMasterResponseBody.java
    │       │                       │   │   ├── EpochEntryCache.java
    │       │                       │   │   ├── GetBrokerMemberGroupResponseBody.java
    │       │                       │   │   ├── GetConsumerStatusBody.java
    │       │                       │   │   ├── GroupList.java
    │       │                       │   │   ├── HARuntimeInfo.java
    │       │                       │   │   ├── KVTable.java
    │       │                       │   │   ├── LockBatchRequestBody.java
    │       │                       │   │   ├── LockBatchResponseBody.java
    │       │                       │   │   ├── MessageRequestModeSerializeWrapper.java
    │       │                       │   │   ├── PopProcessQueueInfo.java
    │       │                       │   │   ├── ProcessQueueInfo.java
    │       │                       │   │   ├── ProducerConnection.java
    │       │                       │   │   ├── ProducerInfo.java
    │       │                       │   │   ├── ProducerTableInfo.java
    │       │                       │   │   ├── QueryAssignmentRequestBody.java
    │       │                       │   │   ├── QueryAssignmentResponseBody.java
    │       │                       │   │   ├── QueryConsumeQueueResponseBody.java
    │       │                       │   │   ├── QueryConsumeTimeSpanBody.java
    │       │                       │   │   ├── QueryCorrectionOffsetBody.java
    │       │                       │   │   ├── QuerySubscriptionResponseBody.java
    │       │                       │   │   ├── QueueTimeSpan.java
    │       │                       │   │   ├── RegisterBrokerBody.java
    │       │                       │   │   ├── ResetOffsetBodyForC.java
    │       │                       │   │   ├── ResetOffsetBody.java
    │       │                       │   │   ├── RoleChangeNotifyEntry.java
    │       │                       │   │   ├── SetMessageRequestModeRequestBody.java
    │       │                       │   │   ├── SubscriptionGroupWrapper.java
    │       │                       │   │   ├── SyncStateSet.java
    │       │                       │   │   ├── TopicConfigAndMappingSerializeWrapper.java
    │       │                       │   │   ├── TopicConfigSerializeWrapper.java
    │       │                       │   │   ├── TopicList.java
    │       │                       │   │   ├── TopicQueueMappingSerializeWrapper.java
    │       │                       │   │   └── UnlockBatchRequestBody.java
    │       │                       │   ├── BrokerSyncInfo.java
    │       │                       │   ├── DataVersion.java
    │       │                       │   ├── EpochEntry.java
    │       │                       │   ├── FastCodesHeader.java
    │       │                       │   ├── filter
    │       │                       │   │   └── FilterAPI.java
    │       │                       │   ├── ForbiddenType.java
    │       │                       │   ├── header
    │       │                       │   │   ├── AckMessageRequestHeader.java
    │       │                       │   │   ├── AddBrokerRequestHeader.java
    │       │                       │   │   ├── ChangeInvisibleTimeRequestHeader.java
    │       │                       │   │   ├── ChangeInvisibleTimeResponseHeader.java
    │       │                       │   │   ├── CheckTransactionStateRequestHeader.java
    │       │                       │   │   ├── CheckTransactionStateResponseHeader.java
    │       │                       │   │   ├── CloneGroupOffsetRequestHeader.java
    │       │                       │   │   ├── ConsumeMessageDirectlyResultRequestHeader.java
    │       │                       │   │   ├── ConsumerSendMsgBackRequestHeader.java
    │       │                       │   │   ├── controller
    │       │                       │   │   │   ├── admin
    │       │                       │   │   │   │   └── CleanControllerBrokerDataRequestHeader.java
    │       │                       │   │   │   ├── AlterSyncStateSetRequestHeader.java
    │       │                       │   │   │   ├── AlterSyncStateSetResponseHeader.java
    │       │                       │   │   │   ├── ElectMasterRequestHeader.java
    │       │                       │   │   │   ├── ElectMasterResponseHeader.java
    │       │                       │   │   │   ├── GetMetaDataResponseHeader.java
    │       │                       │   │   │   ├── GetReplicaInfoRequestHeader.java
    │       │                       │   │   │   ├── GetReplicaInfoResponseHeader.java
    │       │                       │   │   │   └── register
    │       │                       │   │   │       ├── ApplyBrokerIdRequestHeader.java
    │       │                       │   │   │       ├── ApplyBrokerIdResponseHeader.java
    │       │                       │   │   │       ├── GetNextBrokerIdRequestHeader.java
    │       │                       │   │   │       ├── GetNextBrokerIdResponseHeader.java
    │       │                       │   │   │       ├── RegisterBrokerToControllerRequestHeader.java
    │       │                       │   │   │       └── RegisterBrokerToControllerResponseHeader.java
    │       │                       │   │   ├── CreateAccessConfigRequestHeader.java
    │       │                       │   │   ├── CreateTopicRequestHeader.java
    │       │                       │   │   ├── DeleteAccessConfigRequestHeader.java
    │       │                       │   │   ├── DeleteSubscriptionGroupRequestHeader.java
    │       │                       │   │   ├── DeleteTopicRequestHeader.java
    │       │                       │   │   ├── EndTransactionRequestHeader.java
    │       │                       │   │   ├── EndTransactionResponseHeader.java
    │       │                       │   │   ├── ExchangeHAInfoRequestHeader.java
    │       │                       │   │   ├── ExchangeHAInfoResponseHeader.java
    │       │                       │   │   ├── ExtraInfoUtil.java
    │       │                       │   │   ├── GetAllProducerInfoRequestHeader.java
    │       │                       │   │   ├── GetAllTopicConfigResponseHeader.java
    │       │                       │   │   ├── GetBrokerAclConfigResponseHeader.java
    │       │                       │   │   ├── GetBrokerConfigResponseHeader.java
    │       │                       │   │   ├── GetBrokerMemberGroupRequestHeader.java
    │       │                       │   │   ├── GetConsumerConnectionListRequestHeader.java
    │       │                       │   │   ├── GetConsumerListByGroupRequestHeader.java
    │       │                       │   │   ├── GetConsumerListByGroupResponseBody.java
    │       │                       │   │   ├── GetConsumerListByGroupResponseHeader.java
    │       │                       │   │   ├── GetConsumerRunningInfoRequestHeader.java
    │       │                       │   │   ├── GetConsumerStatusRequestHeader.java
    │       │                       │   │   ├── GetConsumeStatsInBrokerHeader.java
    │       │                       │   │   ├── GetConsumeStatsRequestHeader.java
    │       │                       │   │   ├── GetEarliestMsgStoretimeRequestHeader.java
    │       │                       │   │   ├── GetEarliestMsgStoretimeResponseHeader.java
    │       │                       │   │   ├── GetMaxOffsetRequestHeader.java
    │       │                       │   │   ├── GetMaxOffsetResponseHeader.java
    │       │                       │   │   ├── GetMinOffsetRequestHeader.java
    │       │                       │   │   ├── GetMinOffsetResponseHeader.java
    │       │                       │   │   ├── GetProducerConnectionListRequestHeader.java
    │       │                       │   │   ├── GetSubscriptionGroupConfigRequestHeader.java
    │       │                       │   │   ├── GetTopicConfigRequestHeader.java
    │       │                       │   │   ├── GetTopicsByClusterRequestHeader.java
    │       │                       │   │   ├── GetTopicStatsInfoRequestHeader.java
    │       │                       │   │   ├── HeartbeatRequestHeader.java
    │       │                       │   │   ├── InitConsumerOffsetRequestHeader.java
    │       │                       │   │   ├── LockBatchMqRequestHeader.java
    │       │                       │   │   ├── namesrv
    │       │                       │   │   │   ├── AddWritePermOfBrokerRequestHeader.java
    │       │                       │   │   │   ├── AddWritePermOfBrokerResponseHeader.java
    │       │                       │   │   │   ├── BrokerHeartbeatRequestHeader.java
    │       │                       │   │   │   ├── DeleteKVConfigRequestHeader.java
    │       │                       │   │   │   ├── DeleteTopicFromNamesrvRequestHeader.java
    │       │                       │   │   │   ├── GetKVConfigRequestHeader.java
    │       │                       │   │   │   ├── GetKVConfigResponseHeader.java
    │       │                       │   │   │   ├── GetKVListByNamespaceRequestHeader.java
    │       │                       │   │   │   ├── GetRouteInfoRequestHeader.java
    │       │                       │   │   │   ├── PutKVConfigRequestHeader.java
    │       │                       │   │   │   ├── QueryDataVersionRequestHeader.java
    │       │                       │   │   │   ├── QueryDataVersionResponseHeader.java
    │       │                       │   │   │   ├── RegisterBrokerRequestHeader.java
    │       │                       │   │   │   ├── RegisterBrokerResponseHeader.java
    │       │                       │   │   │   ├── RegisterOrderTopicRequestHeader.java
    │       │                       │   │   │   ├── RegisterTopicRequestHeader.java
    │       │                       │   │   │   ├── UnRegisterBrokerRequestHeader.java
    │       │                       │   │   │   ├── WipeWritePermOfBrokerRequestHeader.java
    │       │                       │   │   │   └── WipeWritePermOfBrokerResponseHeader.java
    │       │                       │   │   ├── NotificationRequestHeader.java
    │       │                       │   │   ├── NotificationResponseHeader.java
    │       │                       │   │   ├── NotifyBrokerRoleChangedRequestHeader.java
    │       │                       │   │   ├── NotifyConsumerIdsChangedRequestHeader.java
    │       │                       │   │   ├── NotifyMinBrokerIdChangeRequestHeader.java
    │       │                       │   │   ├── PeekMessageRequestHeader.java
    │       │                       │   │   ├── PollingInfoRequestHeader.java
    │       │                       │   │   ├── PollingInfoResponseHeader.java
    │       │                       │   │   ├── PopMessageRequestHeader.java
    │       │                       │   │   ├── PopMessageResponseHeader.java
    │       │                       │   │   ├── PullMessageRequestHeader.java
    │       │                       │   │   ├── PullMessageResponseHeader.java
    │       │                       │   │   ├── QueryConsumeQueueRequestHeader.java
    │       │                       │   │   ├── QueryConsumerOffsetRequestHeader.java
    │       │                       │   │   ├── QueryConsumerOffsetResponseHeader.java
    │       │                       │   │   ├── QueryConsumeTimeSpanRequestHeader.java
    │       │                       │   │   ├── QueryCorrectionOffsetHeader.java
    │       │                       │   │   ├── QueryMessageRequestHeader.java
    │       │                       │   │   ├── QueryMessageResponseHeader.java
    │       │                       │   │   ├── QuerySubscriptionByConsumerRequestHeader.java
    │       │                       │   │   ├── QueryTopicConsumeByWhoRequestHeader.java
    │       │                       │   │   ├── QueryTopicsByConsumerRequestHeader.java
    │       │                       │   │   ├── RemoveBrokerRequestHeader.java
    │       │                       │   │   ├── ReplyMessageRequestHeader.java
    │       │                       │   │   ├── ResetMasterFlushOffsetHeader.java
    │       │                       │   │   ├── ResetOffsetRequestHeader.java
    │       │                       │   │   ├── ResumeCheckHalfMessageRequestHeader.java
    │       │                       │   │   ├── SearchOffsetRequestHeader.java
    │       │                       │   │   ├── SearchOffsetResponseHeader.java
    │       │                       │   │   ├── SendMessageRequestHeader.java
    │       │                       │   │   ├── SendMessageRequestHeaderV2.java
    │       │                       │   │   ├── SendMessageResponseHeader.java
    │       │                       │   │   ├── StatisticsMessagesRequestHeader.java
    │       │                       │   │   ├── UnlockBatchMqRequestHeader.java
    │       │                       │   │   ├── UnregisterClientRequestHeader.java
    │       │                       │   │   ├── UnregisterClientResponseHeader.java
    │       │                       │   │   ├── UpdateConsumerOffsetRequestHeader.java
    │       │                       │   │   ├── UpdateConsumerOffsetResponseHeader.java
    │       │                       │   │   ├── UpdateGlobalWhiteAddrsConfigRequestHeader.java
    │       │                       │   │   ├── UpdateGroupForbiddenRequestHeader.java
    │       │                       │   │   ├── ViewBrokerStatsDataRequestHeader.java
    │       │                       │   │   ├── ViewMessageRequestHeader.java
    │       │                       │   │   └── ViewMessageResponseHeader.java
    │       │                       │   ├── heartbeat
    │       │                       │   │   ├── ConsumerData.java
    │       │                       │   │   ├── ConsumeType.java
    │       │                       │   │   ├── HeartbeatData.java
    │       │                       │   │   ├── MessageModel.java
    │       │                       │   │   ├── ProducerData.java
    │       │                       │   │   └── SubscriptionData.java
    │       │                       │   ├── LanguageCode.java
    │       │                       │   ├── MQProtosHelper.java
    │       │                       │   ├── NamespaceUtil.java
    │       │                       │   ├── namesrv
    │       │                       │   │   └── RegisterBrokerResult.java
    │       │                       │   ├── RemotingCommand.java
    │       │                       │   ├── RemotingCommandType.java
    │       │                       │   ├── RemotingSerializable.java
    │       │                       │   ├── RemotingSysResponseCode.java
    │       │                       │   ├── RequestCode.java
    │       │                       │   ├── RequestSource.java
    │       │                       │   ├── RequestType.java
    │       │                       │   ├── ResponseCode.java
    │       │                       │   ├── RocketMQSerializable.java
    │       │                       │   ├── route
    │       │                       │   │   ├── BrokerData.java
    │       │                       │   │   ├── MessageQueueRouteState.java
    │       │                       │   │   ├── QueueData.java
    │       │                       │   │   └── TopicRouteData.java
    │       │                       │   ├── SerializeType.java
    │       │                       │   ├── statictopic
    │       │                       │   │   ├── LogicQueueMappingItem.java
    │       │                       │   │   ├── TopicConfigAndQueueMapping.java
    │       │                       │   │   ├── TopicQueueMappingContext.java
    │       │                       │   │   ├── TopicQueueMappingDetail.java
    │       │                       │   │   ├── TopicQueueMappingInfo.java
    │       │                       │   │   ├── TopicQueueMappingOne.java
    │       │                       │   │   ├── TopicQueueMappingUtils.java
    │       │                       │   │   └── TopicRemappingDetailWrapper.java
    │       │                       │   ├── subscription
    │       │                       │   │   ├── CustomizedRetryPolicy.java
    │       │                       │   │   ├── ExponentialRetryPolicy.java
    │       │                       │   │   ├── GroupForbidden.java
    │       │                       │   │   ├── GroupRetryPolicy.java
    │       │                       │   │   ├── GroupRetryPolicyType.java
    │       │                       │   │   ├── RetryPolicy.java
    │       │                       │   │   ├── SimpleSubscriptionData.java
    │       │                       │   │   └── SubscriptionGroupConfig.java
    │       │                       │   └── topic
    │       │                       │       └── OffsetMovedEvent.java
    │       │                       ├── proxy
    │       │                       │   └── SocksProxyConfig.java
    │       │                       ├── RemotingClient.java
    │       │                       ├── RemotingServer.java
    │       │                       ├── RemotingService.java
    │       │                       ├── rpc
    │       │                       │   ├── ClientMetadata.java
    │       │                       │   ├── RequestBuilder.java
    │       │                       │   ├── RpcClientHook.java
    │       │                       │   ├── RpcClientImpl.java
    │       │                       │   ├── RpcClient.java
    │       │                       │   ├── RpcClientUtils.java
    │       │                       │   ├── RpcException.java
    │       │                       │   ├── RpcRequestHeader.java
    │       │                       │   ├── RpcRequest.java
    │       │                       │   ├── RpcResponse.java
    │       │                       │   ├── TopicQueueRequestHeader.java
    │       │                       │   └── TopicRequestHeader.java
    │       │                       ├── rpchook
    │       │                       │   ├── DynamicalExtFieldRPCHook.java
    │       │                       │   └── StreamTypeRPCHook.java
    │       │                       └── RPCHook.java
    │       └── test
    │           ├── java
    │           │   └── org
    │           │       └── apache
    │           │           └── rocketmq
    │           │               └── remoting
    │           │                   ├── netty
    │           │                   │   ├── FileRegionEncoderTest.java
    │           │                   │   ├── MockChannel.java
    │           │                   │   ├── MockChannelPromise.java
    │           │                   │   ├── NettyClientConfigTest.java
    │           │                   │   ├── NettyRemotingAbstractTest.java
    │           │                   │   ├── NettyRemotingClientTest.java
    │           │                   │   ├── NettyRemotingServerTest.java
    │           │                   │   ├── NettyServerConfigTest.java
    │           │                   │   └── RemotingCodeDistributionHandlerTest.java
    │           │                   ├── protocol
    │           │                   │   ├── admin
    │           │                   │   │   ├── ConsumeStatsTest.java
    │           │                   │   │   └── TopicStatsTableTest.java
    │           │                   │   ├── body
    │           │                   │   │   ├── BatchAckTest.java
    │           │                   │   │   ├── BrokerStatsDataTest.java
    │           │                   │   │   ├── CheckClientRequestBodyTest.java
    │           │                   │   │   ├── ConsumeMessageDirectlyResultTest.java
    │           │                   │   │   ├── ConsumerConnectionTest.java
    │           │                   │   │   ├── ConsumerRunningInfoTest.java
    │           │                   │   │   ├── ConsumeStatsListTest.java
    │           │                   │   │   ├── KVTableTest.java
    │           │                   │   │   ├── MessageRequestModeSerializeWrapperTest.java
    │           │                   │   │   ├── QueryConsumeQueueResponseBodyTest.java
    │           │                   │   │   ├── QueryCorrectionOffsetBodyTest.java
    │           │                   │   │   ├── ResetOffsetBodyTest.java
    │           │                   │   │   └── SubscriptionGroupWrapperTest.java
    │           │                   │   ├── CheckpointFileTest.java
    │           │                   │   ├── ClusterInfoTest.java
    │           │                   │   ├── ConsumeStatusTest.java
    │           │                   │   ├── DataVersionTest.java
    │           │                   │   ├── filter
    │           │                   │   │   └── FilterAPITest.java
    │           │                   │   ├── GroupListTest.java
    │           │                   │   ├── header
    │           │                   │   │   ├── ExtraInfoUtilTest.java
    │           │                   │   │   ├── FastCodesHeaderTest.java
    │           │                   │   │   └── SendMessageRequestHeaderV2Test.java
    │           │                   │   ├── heartbeat
    │           │                   │   │   └── SubscriptionDataTest.java
    │           │                   │   ├── LanguageCodeTest.java
    │           │                   │   ├── NamespaceUtilTest.java
    │           │                   │   ├── QueryConsumeTimeSpanBodyTest.java
    │           │                   │   ├── RegisterBrokerBodyTest.java
    │           │                   │   ├── RemotingCommandTest.java
    │           │                   │   ├── RemotingSerializableTest.java
    │           │                   │   ├── RequestSourceTest.java
    │           │                   │   ├── RequestTypeTest.java
    │           │                   │   ├── RocketMQSerializableTest.java
    │           │                   │   ├── route
    │           │                   │   │   └── TopicRouteDataTest.java
    │           │                   │   ├── statictopic
    │           │                   │   │   ├── TopicQueueMappingTest.java
    │           │                   │   │   └── TopicQueueMappingUtilsTest.java
    │           │                   │   ├── subscription
    │           │                   │   │   ├── CustomizedRetryPolicyTest.java
    │           │                   │   │   ├── ExponentialRetryPolicyTest.java
    │           │                   │   │   └── GroupRetryPolicyTest.java
    │           │                   │   └── topic
    │           │                   │       └── OffsetMovedEventTest.java
    │           │                   ├── ProxyProtocolTest.java
    │           │                   ├── RemotingServerTest.java
    │           │                   ├── rpc
    │           │                   │   └── RpcRequestHeaderTest.java
    │           │                   ├── SubRemotingServerTest.java
    │           │                   └── TlsTest.java
    │           └── resources
    │               ├── certs
    │               │   ├── badClient.key
    │               │   ├── badClient.pem
    │               │   ├── badServer.key
    │               │   ├── badServer.pem
    │               │   ├── ca.pem
    │               │   ├── client.key
    │               │   ├── client.pem
    │               │   ├── privkey.pem
    │               │   ├── server.key
    │               │   └── server.pem
    │               └── rmq.logback-test.xml
    ├── srvutil
    │   ├── BUILD.bazel
    │   ├── pom.xml
    │   └── src
    │       ├── main
    │       │   └── java
    │       │       └── org
    │       │           └── apache
    │       │               └── rocketmq
    │       │                   └── srvutil
    │       │                       ├── AclFileWatchService.java
    │       │                       ├── FileWatchService.java
    │       │                       ├── ServerUtil.java
    │       │                       └── ShutdownHookThread.java
    │       └── test
    │           ├── java
    │           │   └── org
    │           │       └── apache
    │           │           └── rocketmq
    │           │               └── srvutil
    │           │                   └── FileWatchServiceTest.java
    │           └── resources
    │               └── rmq.logback-test.xml
    ├── store
    │   ├── BUILD.bazel
    │   ├── pom.xml
    │   └── src
    │       ├── main
    │       │   └── java
    │       │       └── org
    │       │           └── apache
    │       │               └── rocketmq
    │       │                   └── store
    │       │                       ├── AllocateMappedFileService.java
    │       │                       ├── AppendMessageCallback.java
    │       │                       ├── AppendMessageResult.java
    │       │                       ├── AppendMessageStatus.java
    │       │                       ├── CommitLogDispatcher.java
    │       │                       ├── CommitLog.java
    │       │                       ├── CompactionAppendMsgCallback.java
    │       │                       ├── config
    │       │                       │   ├── BrokerRole.java
    │       │                       │   ├── FlushDiskType.java
    │       │                       │   ├── MessageStoreConfig.java
    │       │                       │   └── StorePathConfigHelper.java
    │       │                       ├── ConsumeQueueExt.java
    │       │                       ├── ConsumeQueue.java
    │       │                       ├── DefaultMessageFilter.java
    │       │                       ├── DefaultMessageStore.java
    │       │                       ├── DispatchRequest.java
    │       │                       ├── dledger
    │       │                       │   └── DLedgerCommitLog.java
    │       │                       ├── FileQueueSnapshot.java
    │       │                       ├── FlushDiskWatcher.java
    │       │                       ├── FlushManager.java
    │       │                       ├── GetMessageResult.java
    │       │                       ├── GetMessageStatus.java
    │       │                       ├── ha
    │       │                       │   ├── autoswitch
    │       │                       │   │   ├── AutoSwitchHAClient.java
    │       │                       │   │   ├── AutoSwitchHAConnection.java
    │       │                       │   │   ├── AutoSwitchHAService.java
    │       │                       │   │   ├── BrokerMetadata.java
    │       │                       │   │   ├── EpochFileCache.java
    │       │                       │   │   ├── MetadataFile.java
    │       │                       │   │   └── TempBrokerMetadata.java
    │       │                       │   ├── DefaultHAClient.java
    │       │                       │   ├── DefaultHAConnection.java
    │       │                       │   ├── DefaultHAService.java
    │       │                       │   ├── FlowMonitor.java
    │       │                       │   ├── GroupTransferService.java
    │       │                       │   ├── HAClient.java
    │       │                       │   ├── HAConnection.java
    │       │                       │   ├── HAConnectionState.java
    │       │                       │   ├── HAConnectionStateNotificationRequest.java
    │       │                       │   ├── HAConnectionStateNotificationService.java
    │       │                       │   ├── HAService.java
    │       │                       │   ├── io
    │       │                       │   │   ├── AbstractHAReader.java
    │       │                       │   │   ├── HAReadHook.java
    │       │                       │   │   ├── HAWriteHook.java
    │       │                       │   │   └── HAWriter.java
    │       │                       │   └── WaitNotifyObject.java
    │       │                       ├── hook
    │       │                       │   ├── PutMessageHook.java
    │       │                       │   └── SendMessageBackHook.java
    │       │                       ├── index
    │       │                       │   ├── IndexFile.java
    │       │                       │   ├── IndexHeader.java
    │       │                       │   ├── IndexService.java
    │       │                       │   └── QueryOffsetResult.java
    │       │                       ├── kv
    │       │                       │   ├── CommitLogDispatcherCompaction.java
    │       │                       │   ├── CompactionLog.java
    │       │                       │   ├── CompactionPositionMgr.java
    │       │                       │   ├── CompactionService.java
    │       │                       │   ├── CompactionStore.java
    │       │                       │   └── MessageFetcher.java
    │       │                       ├── logfile
    │       │                       │   ├── AbstractMappedFile.java
    │       │                       │   ├── DefaultMappedFile.java
    │       │                       │   └── MappedFile.java
    │       │                       ├── MappedFileQueue.java
    │       │                       ├── MessageArrivingListener.java
    │       │                       ├── MessageExtEncoder.java
    │       │                       ├── MessageFilter.java
    │       │                       ├── MessageStore.java
    │       │                       ├── metrics
    │       │                       │   ├── DefaultStoreMetricsConstant.java
    │       │                       │   ├── DefaultStoreMetricsManager.java
    │       │                       │   └── RocksDBStoreMetricsManager.java
    │       │                       ├── MultiDispatch.java
    │       │                       ├── MultiPathMappedFileQueue.java
    │       │                       ├── plugin
    │       │                       │   ├── AbstractPluginMessageStore.java
    │       │                       │   ├── MessageStoreFactory.java
    │       │                       │   └── MessageStorePluginContext.java
    │       │                       ├── pop
    │       │                       │   ├── AckMsg.java
    │       │                       │   ├── BatchAckMsg.java
    │       │                       │   └── PopCheckPoint.java
    │       │                       ├── PutMessageContext.java
    │       │                       ├── PutMessageLock.java
    │       │                       ├── PutMessageReentrantLock.java
    │       │                       ├── PutMessageResult.java
    │       │                       ├── PutMessageSpinLock.java
    │       │                       ├── PutMessageStatus.java
    │       │                       ├── QueryMessageResult.java
    │       │                       ├── queue
    │       │                       │   ├── AbstractConsumeQueueStore.java
    │       │                       │   ├── BatchConsumeQueue.java
    │       │                       │   ├── BatchOffsetIndex.java
    │       │                       │   ├── ConsumeQueueInterface.java
    │       │                       │   ├── ConsumeQueueStoreInterface.java
    │       │                       │   ├── ConsumeQueueStore.java
    │       │                       │   ├── CqUnit.java
    │       │                       │   ├── FileQueueLifeCycle.java
    │       │                       │   ├── MultiDispatchUtils.java
    │       │                       │   ├── QueueOffsetOperator.java
    │       │                       │   ├── ReferredIterator.java
    │       │                       │   ├── RocksDBConsumeQueue.java
    │       │                       │   ├── RocksDBConsumeQueueOffsetTable.java
    │       │                       │   ├── RocksDBConsumeQueueStore.java
    │       │                       │   ├── RocksDBConsumeQueueTable.java
    │       │                       │   └── SparseConsumeQueue.java
    │       │                       ├── ReferenceResource.java
    │       │                       ├── rocksdb
    │       │                       │   ├── ConsumeQueueCompactionFilterFactory.java
    │       │                       │   ├── ConsumeQueueRocksDBStorage.java
    │       │                       │   └── RocksDBOptionsFactory.java
    │       │                       ├── RocksDBMessageStore.java
    │       │                       ├── RunningFlags.java
    │       │                       ├── SelectMappedBufferResult.java
    │       │                       ├── SelectMappedFileResult.java
    │       │                       ├── stats
    │       │                       │   ├── BrokerStats.java
    │       │                       │   ├── BrokerStatsManager.java
    │       │                       │   └── LmqBrokerStatsManager.java
    │       │                       ├── StoreCheckpoint.java
    │       │                       ├── StoreStatsService.java
    │       │                       ├── StoreType.java
    │       │                       ├── StoreUtil.java
    │       │                       ├── Swappable.java
    │       │                       ├── timer
    │       │                       │   ├── Slot.java
    │       │                       │   ├── TimerCheckpoint.java
    │       │                       │   ├── TimerLog.java
    │       │                       │   ├── TimerMessageStore.java
    │       │                       │   ├── TimerMetrics.java
    │       │                       │   ├── TimerRequest.java
    │       │                       │   └── TimerWheel.java
    │       │                       ├── TopicQueueLock.java
    │       │                       ├── TransientStorePool.java
    │       │                       └── util
    │       │                           ├── LibC.java
    │       │                           └── PerfCounter.java
    │       └── test
    │           ├── java
    │           │   └── org
    │           │       └── apache
    │           │           └── rocketmq
    │           │               └── store
    │           │                   ├── AppendCallbackTest.java
    │           │                   ├── AppendPropCRCTest.java
    │           │                   ├── BatchPutMessageTest.java
    │           │                   ├── ConsumeQueueExtTest.java
    │           │                   ├── ConsumeQueueTest.java
    │           │                   ├── DefaultMessageStoreCleanFilesTest.java
    │           │                   ├── DefaultMessageStoreShutDownTest.java
    │           │                   ├── DefaultMessageStoreTest.java
    │           │                   ├── dledger
    │           │                   │   ├── DLedgerCommitlogTest.java
    │           │                   │   ├── DLedgerMultiPathTest.java
    │           │                   │   ├── MessageStoreTestBase.java
    │           │                   │   └── MixCommitlogTest.java
    │           │                   ├── FlushDiskWatcherTest.java
    │           │                   ├── GetMessageResultTest.java
    │           │                   ├── ha
    │           │                   │   ├── autoswitch
    │           │                   │   │   ├── AutoSwitchHATest.java
    │           │                   │   │   └── EpochFileCacheTest.java
    │           │                   │   ├── FlowMonitorTest.java
    │           │                   │   ├── HAClientTest.java
    │           │                   │   ├── HAServerTest.java
    │           │                   │   └── WaitNotifyObjectTest.java
    │           │                   ├── HATest.java
    │           │                   ├── index
    │           │                   │   └── IndexFileTest.java
    │           │                   ├── kv
    │           │                   │   ├── CompactionLogTest.java
    │           │                   │   ├── CompactionPositionMgrTest.java
    │           │                   │   └── OffsetMapTest.java
    │           │                   ├── logfile
    │           │                   │   └── DefaultMappedFileTest.java
    │           │                   ├── MappedFileQueueTest.java
    │           │                   ├── MappedFileTest.java
    │           │                   ├── MessageExtBrokerInnerTest.java
    │           │                   ├── MultiDispatchTest.java
    │           │                   ├── MultiPathMappedFileQueueTest.java
    │           │                   ├── pop
    │           │                   │   ├── AckMsgTest.java
    │           │                   │   └── BatchAckMsgTest.java
    │           │                   ├── queue
    │           │                   │   ├── BatchConsumeMessageTest.java
    │           │                   │   ├── BatchConsumeQueueTest.java
    │           │                   │   ├── ConsumeQueueStoreTest.java
    │           │                   │   ├── ConsumeQueueTest.java
    │           │                   │   ├── QueueTestBase.java
    │           │                   │   └── SparseConsumeQueueTest.java
    │           │                   ├── RocksDBMessageStoreTest.java
    │           │                   ├── stats
    │           │                   │   └── BrokerStatsManagerTest.java
    │           │                   ├── StoreCheckpointTest.java
    │           │                   ├── StoreStatsServiceTest.java
    │           │                   ├── StoreTestBase.java
    │           │                   ├── StoreTestUtil.java
    │           │                   └── timer
    │           │                       ├── StoreTestUtils.java
    │           │                       ├── TimerCheckPointTest.java
    │           │                       ├── TimerLogTest.java
    │           │                       ├── TimerMessageStoreTest.java
    │           │                       ├── TimerMetricsTest.java
    │           │                       └── TimerWheelTest.java
    │           └── resources
    │               └── rmq.logback-test.xml
    ├── style
    │   ├── copyright
    │   │   ├── Apache.xml
    │   │   └── profiles_settings.xml
    │   ├── rmq_checkstyle.xml
    │   ├── rmq_codeStyle.xml
    │   └── spotbugs-suppressions.xml
    ├── test
    │   ├── BUILD.bazel
    │   ├── pom.xml
    │   └── src
    │       ├── main
    │       │   └── java
    │       │       └── org
    │       │           └── apache
    │       │               └── rocketmq
    │       │                   └── test
    │       │                       ├── client
    │       │                       │   ├── mq
    │       │                       │   │   └── MQAsyncProducer.java
    │       │                       │   └── rmq
    │       │                       │       ├── RMQAsyncSendProducer.java
    │       │                       │       ├── RMQBroadCastConsumer.java
    │       │                       │       ├── RMQNormalConsumer.java
    │       │                       │       ├── RMQNormalProducer.java
    │       │                       │       ├── RMQPopClient.java
    │       │                       │       ├── RMQPopConsumer.java
    │       │                       │       ├── RMQSqlConsumer.java
    │       │                       │       └── RMQTransactionalProducer.java
    │       │                       ├── clientinterface
    │       │                       │   ├── AbstractMQConsumer.java
    │       │                       │   ├── AbstractMQProducer.java
    │       │                       │   ├── MQCollector.java
    │       │                       │   ├── MQConsumer.java
    │       │                       │   └── MQProducer.java
    │       │                       ├── factory
    │       │                       │   ├── ConsumerFactory.java
    │       │                       │   ├── MessageFactory.java
    │       │                       │   ├── MQMessageFactory.java
    │       │                       │   ├── ProducerFactory.java
    │       │                       │   ├── SendCallBackFactory.java
    │       │                       │   └── TagMessage.java
    │       │                       ├── listener
    │       │                       │   ├── AbstractListener.java
    │       │                       │   └── rmq
    │       │                       │       ├── concurrent
    │       │                       │       │   ├── RMQBlockListener.java
    │       │                       │       │   ├── RMQDelayListener.java
    │       │                       │       │   └── RMQNormalListener.java
    │       │                       │       └── order
    │       │                       │           └── RMQOrderListener.java
    │       │                       ├── lmq
    │       │                       │   └── benchmark
    │       │                       │       └── BenchLmqStore.java
    │       │                       ├── message
    │       │                       │   └── MessageQueueMsg.java
    │       │                       ├── schema
    │       │                       │   ├── SchemaDefiner.java
    │       │                       │   └── SchemaTools.java
    │       │                       ├── sendresult
    │       │                       │   └── ResultWrapper.java
    │       │                       └── util
    │       │                           ├── Condition.java
    │       │                           ├── data
    │       │                           │   └── collect
    │       │                           │       ├── DataCollector.java
    │       │                           │       ├── DataCollectorManager.java
    │       │                           │       ├── DataFilter.java
    │       │                           │       └── impl
    │       │                           │           ├── ListDataCollectorImpl.java
    │       │                           │           └── MapDataCollectorImpl.java
    │       │                           ├── DuplicateMessageInfo.java
    │       │                           ├── FileUtil.java
    │       │                           ├── MQAdminTestUtils.java
    │       │                           ├── MQRandomUtils.java
    │       │                           ├── MQWait.java
    │       │                           ├── parallel
    │       │                           │   ├── ParallelTaskExecutor.java
    │       │                           │   ├── ParallelTask.java
    │       │                           │   └── Task4Test.java
    │       │                           ├── RandomUtil.java
    │       │                           ├── RandomUtils.java
    │       │                           ├── StatUtil.java
    │       │                           ├── TestUtil.java
    │       │                           ├── TestUtils.java
    │       │                           └── VerifyUtils.java
    │       └── test
    │           ├── java
    │           │   └── org
    │           │       └── apache
    │           │           └── rocketmq
    │           │               └── test
    │           │                   ├── autoswitchrole
    │           │                   │   ├── AutoSwitchRoleBase.java
    │           │                   │   └── AutoSwitchRoleIntegrationTest.java
    │           │                   ├── base
    │           │                   │   ├── BaseConf.java
    │           │                   │   └── IntegrationTestBase.java
    │           │                   ├── client
    │           │                   │   ├── consumer
    │           │                   │   │   ├── balance
    │           │                   │   │   │   ├── NormalMsgDynamicBalanceIT.java
    │           │                   │   │   │   └── NormalMsgStaticBalanceIT.java
    │           │                   │   │   ├── broadcast
    │           │                   │   │   │   ├── BaseBroadcast.java
    │           │                   │   │   │   ├── normal
    │           │                   │   │   │   │   ├── BroadcastNormalMsgNotReceiveIT.java
    │           │                   │   │   │   │   ├── BroadcastNormalMsgRecvCrashIT.java
    │           │                   │   │   │   │   ├── BroadcastNormalMsgRecvFailIT.java
    │           │                   │   │   │   │   ├── BroadcastNormalMsgRecvStartLaterIT.java
    │           │                   │   │   │   │   ├── BroadcastNormalMsgTwoDiffGroupRecvIT.java
    │           │                   │   │   │   │   └── NormalMsgTwoSameGroupConsumerIT.java
    │           │                   │   │   │   ├── order
    │           │                   │   │   │   │   └── OrderMsgBroadcastIT.java
    │           │                   │   │   │   └── tag
    │           │                   │   │   │       ├── BroadcastTwoConsumerFilterIT.java
    │           │                   │   │   │       ├── BroadcastTwoConsumerSubDiffTagIT.java
    │           │                   │   │   │       └── BroadcastTwoConsumerSubTagIT.java
    │           │                   │   │   ├── cluster
    │           │                   │   │   │   ├── DynamicAddAndCrashIT.java
    │           │                   │   │   │   ├── DynamicAddConsumerIT.java
    │           │                   │   │   │   └── DynamicCrashConsumerIT.java
    │           │                   │   │   ├── filter
    │           │                   │   │   │   └── SqlFilterIT.java
    │           │                   │   │   ├── pop
    │           │                   │   │   │   ├── BasePop.java
    │           │                   │   │   │   ├── BasePopNormally.java
    │           │                   │   │   │   ├── BasePopOrderly.java
    │           │                   │   │   │   ├── BatchAckIT.java
    │           │                   │   │   │   ├── NotificationIT.java
    │           │                   │   │   │   ├── PopBigMessageIT.java
    │           │                   │   │   │   ├── PopMessageAndForwardingIT.java
    │           │                   │   │   │   ├── PopOrderlyIT.java
    │           │                   │   │   │   └── PopSubCheckIT.java
    │           │                   │   │   ├── tag
    │           │                   │   │   │   ├── MulTagSubIT.java
    │           │                   │   │   │   ├── TagMessageWith1ConsumerIT.java
    │           │                   │   │   │   ├── TagMessageWithMulConsumerIT.java
    │           │                   │   │   │   └── TagMessageWithSameGroupConsumerIT.java
    │           │                   │   │   └── topic
    │           │                   │   │       ├── MulConsumerMulTopicIT.java
    │           │                   │   │       └── OneConsumerMulTopicIT.java
    │           │                   │   └── producer
    │           │                   │       ├── async
    │           │                   │       │   ├── AsyncSendExceptionIT.java
    │           │                   │       │   ├── AsyncSendWithMessageQueueIT.java
    │           │                   │       │   ├── AsyncSendWithMessageQueueSelectorIT.java
    │           │                   │       │   └── AsyncSendWithOnlySendCallBackIT.java
    │           │                   │       ├── batch
    │           │                   │       │   └── BatchSendIT.java
    │           │                   │       ├── exception
    │           │                   │       │   ├── msg
    │           │                   │       │   │   ├── ChinaPropIT.java
    │           │                   │       │   │   ├── MessageExceptionIT.java
    │           │                   │       │   │   └── MessageUserPropIT.java
    │           │                   │       │   └── producer
    │           │                   │       │       └── ProducerGroupAndInstanceNameValidityIT.java
    │           │                   │       ├── oneway
    │           │                   │       │   ├── OneWaySendExceptionIT.java
    │           │                   │       │   ├── OneWaySendIT.java
    │           │                   │       │   ├── OneWaySendWithMQIT.java
    │           │                   │       │   └── OneWaySendWithSelectorIT.java
    │           │                   │       ├── order
    │           │                   │       │   ├── OrderMsgDynamicRebalanceIT.java
    │           │                   │       │   ├── OrderMsgIT.java
    │           │                   │       │   ├── OrderMsgRebalanceIT.java
    │           │                   │       │   └── OrderMsgWithTagIT.java
    │           │                   │       ├── querymsg
    │           │                   │       │   ├── QueryMsgByIdExceptionIT.java
    │           │                   │       │   ├── QueryMsgByIdIT.java
    │           │                   │       │   └── QueryMsgByKeyIT.java
    │           │                   │       └── transaction
    │           │                   │           └── TransactionalMsgIT.java
    │           │                   ├── container
    │           │                   │   ├── AddAndRemoveBrokerIT.java
    │           │                   │   ├── BrokerFailoverIT.java
    │           │                   │   ├── BrokerMemberGroupIT.java
    │           │                   │   ├── ContainerIntegrationTestBase.java
    │           │                   │   ├── GetMaxOffsetFromSlaveIT.java
    │           │                   │   ├── GetMetadataReverseIT.java
    │           │                   │   ├── PopSlaveActingMasterIT.java
    │           │                   │   ├── PullMultipleReplicasIT.java
    │           │                   │   ├── PushMultipleReplicasIT.java
    │           │                   │   ├── RebalanceLockOnSlaveIT.java
    │           │                   │   ├── ScheduledMessageIT.java
    │           │                   │   ├── ScheduleSlaveActingMasterIT.java
    │           │                   │   ├── SendMultipleReplicasIT.java
    │           │                   │   ├── SlaveBrokerIT.java
    │           │                   │   ├── SyncConsumerOffsetIT.java
    │           │                   │   ├── TransactionListenerImpl.java
    │           │                   │   └── TransactionMessageIT.java
    │           │                   ├── delay
    │           │                   │   ├── DelayConf.java
    │           │                   │   └── NormalMsgDelayIT.java
    │           │                   ├── dledger
    │           │                   │   └── DLedgerProduceAndConsumeIT.java
    │           │                   ├── grpc
    │           │                   │   └── v2
    │           │                   │       ├── ClusterGrpcIT.java
    │           │                   │       ├── GrpcBaseIT.java
    │           │                   │       └── LocalGrpcIT.java
    │           │                   ├── lmq
    │           │                   │   └── TestBenchLmqStore.java
    │           │                   ├── offset
    │           │                   │   ├── LagCalculationIT.java
    │           │                   │   ├── OffsetNotFoundIT.java
    │           │                   │   ├── OffsetResetForPopIT.java
    │           │                   │   └── OffsetResetIT.java
    │           │                   ├── retry
    │           │                   │   └── PopConsumerRetryIT.java
    │           │                   ├── route
    │           │                   │   └── CreateAndUpdateTopicIT.java
    │           │                   ├── schema
    │           │                   │   └── SchemaTest.java
    │           │                   ├── smoke
    │           │                   │   └── NormalMessageSendAndRecvIT.java
    │           │                   ├── statictopic
    │           │                   │   └── StaticTopicIT.java
    │           │                   └── tls
    │           │                       ├── TlsIT.java
    │           │                       ├── TlsMix2IT.java
    │           │                       └── TlsMixIT.java
    │           └── resources
    │               ├── rmq.logback-test.xml
    │               ├── rmq-proxy-home
    │               │   └── conf
    │               │       ├── broker.conf
    │               │       ├── logback_proxy.xml
    │               │       └── rmq-proxy.json
    │               └── schema
    │                   ├── api
    │                   │   ├── client.consumer.AllocateMessageQueueStrategy.schema
    │                   │   ├── client.consumer.DefaultLitePullConsumer.schema
    │                   │   ├── client.consumer.DefaultMQPullConsumer.schema
    │                   │   ├── client.consumer.DefaultMQPushConsumer.schema
    │                   │   ├── client.consumer.listener.ConsumeConcurrentlyContext.schema
    │                   │   ├── client.consumer.listener.ConsumeConcurrentlyStatus.schema
    │                   │   ├── client.consumer.listener.ConsumeOrderlyContext.schema
    │                   │   ├── client.consumer.listener.ConsumeOrderlyStatus.schema
    │                   │   ├── client.consumer.listener.MessageListenerConcurrently.schema
    │                   │   ├── client.consumer.listener.MessageListenerOrderly.schema
    │                   │   ├── client.consumer.listener.MessageListener.schema
    │                   │   ├── client.consumer.PullCallback.schema
    │                   │   ├── client.consumer.PullResult.schema
    │                   │   ├── client.consumer.PullStatus.schema
    │                   │   ├── client.hook.CheckForbiddenHook.schema
    │                   │   ├── client.hook.ConsumeMessageContext.schema
    │                   │   ├── client.hook.ConsumeMessageHook.schema
    │                   │   ├── client.hook.EndTransactionContext.schema
    │                   │   ├── client.hook.EndTransactionHook.schema
    │                   │   ├── client.hook.FilterMessageContext.schema
    │                   │   ├── client.hook.FilterMessageHook.schema
    │                   │   ├── client.hook.SendMessageContext.schema
    │                   │   ├── client.hook.SendMessageHook.schema
    │                   │   ├── client.producer.DefaultMQProducer.schema
    │                   │   ├── client.producer.MessageQueueSelector.schema
    │                   │   ├── client.producer.SendCallback.schema
    │                   │   ├── client.producer.SendResult.schema
    │                   │   ├── client.producer.SendStatus.schema
    │                   │   ├── common.message.MessageExt.schema
    │                   │   ├── common.message.MessageQueue.schema
    │                   │   ├── common.message.Message.schema
    │                   │   ├── remoting.RPCHook.schema
    │                   │   └── tools.admin.DefaultMQAdminExt.schema
    │                   └── protocol
    │                       ├── common.protocol.header.CheckTransactionStateRequestHeader.schema
    │                       ├── common.protocol.header.CheckTransactionStateResponseHeader.schema
    │                       ├── common.protocol.header.CloneGroupOffsetRequestHeader.schema
    │                       ├── common.protocol.header.ConsumeMessageDirectlyResultRequestHeader.schema
    │                       ├── common.protocol.header.ConsumerSendMsgBackRequestHeader.schema
    │                       ├── common.protocol.header.CreateAccessConfigRequestHeader.schema
    │                       ├── common.protocol.header.CreateTopicRequestHeader.schema
    │                       ├── common.protocol.header.DeleteAccessConfigRequestHeader.schema
    │                       ├── common.protocol.header.DeleteSubscriptionGroupRequestHeader.schema
    │                       ├── common.protocol.header.DeleteTopicRequestHeader.schema
    │                       ├── common.protocol.header.EndTransactionRequestHeader.schema
    │                       ├── common.protocol.header.EndTransactionResponseHeader.schema
    │                       ├── common.protocol.header.filtersrv.RegisterFilterServerRequestHeader.schema
    │                       ├── common.protocol.header.filtersrv.RegisterFilterServerResponseHeader.schema
    │                       ├── common.protocol.header.filtersrv.RegisterMessageFilterClassRequestHeader.schema
    │                       ├── common.protocol.header.GetAllProducerInfoRequestHeader.schema
    │                       ├── common.protocol.header.GetAllTopicConfigResponseHeader.schema
    │                       ├── common.protocol.header.GetBrokerAclConfigResponseHeader.schema
    │                       ├── common.protocol.header.GetBrokerClusterAclConfigResponseHeader.schema
    │                       ├── common.protocol.header.GetBrokerConfigResponseHeader.schema
    │                       ├── common.protocol.header.GetConsumerConnectionListRequestHeader.schema
    │                       ├── common.protocol.header.GetConsumerListByGroupRequestHeader.schema
    │                       ├── common.protocol.header.GetConsumerListByGroupResponseHeader.schema
    │                       ├── common.protocol.header.GetConsumerRunningInfoRequestHeader.schema
    │                       ├── common.protocol.header.GetConsumerStatusRequestHeader.schema
    │                       ├── common.protocol.header.GetConsumeStatsInBrokerHeader.schema
    │                       ├── common.protocol.header.GetConsumeStatsRequestHeader.schema
    │                       ├── common.protocol.header.GetEarliestMsgStoretimeRequestHeader.schema
    │                       ├── common.protocol.header.GetEarliestMsgStoretimeResponseHeader.schema
    │                       ├── common.protocol.header.GetMaxOffsetRequestHeader.schema
    │                       ├── common.protocol.header.GetMaxOffsetResponseHeader.schema
    │                       ├── common.protocol.header.GetMinOffsetRequestHeader.schema
    │                       ├── common.protocol.header.GetMinOffsetResponseHeader.schema
    │                       ├── common.protocol.header.GetProducerConnectionListRequestHeader.schema
    │                       ├── common.protocol.header.GetTopicsByClusterRequestHeader.schema
    │                       ├── common.protocol.header.GetTopicStatsInfoRequestHeader.schema
    │                       ├── common.protocol.header.namesrv.AddWritePermOfBrokerRequestHeader.schema
    │                       ├── common.protocol.header.namesrv.AddWritePermOfBrokerResponseHeader.schema
    │                       ├── common.protocol.header.namesrv.DeleteKVConfigRequestHeader.schema
    │                       ├── common.protocol.header.namesrv.DeleteTopicFromNamesrvRequestHeader.schema
    │                       ├── common.protocol.header.namesrv.GetKVConfigRequestHeader.schema
    │                       ├── common.protocol.header.namesrv.GetKVConfigResponseHeader.schema
    │                       ├── common.protocol.header.namesrv.GetKVListByNamespaceRequestHeader.schema
    │                       ├── common.protocol.header.namesrv.GetRouteInfoRequestHeader.schema
    │                       ├── common.protocol.header.namesrv.PutKVConfigRequestHeader.schema
    │                       ├── common.protocol.header.namesrv.QueryDataVersionRequestHeader.schema
    │                       ├── common.protocol.header.namesrv.QueryDataVersionResponseHeader.schema
    │                       ├── common.protocol.header.namesrv.RegisterBrokerRequestHeader.schema
    │                       ├── common.protocol.header.namesrv.RegisterBrokerResponseHeader.schema
    │                       ├── common.protocol.header.namesrv.RegisterOrderTopicRequestHeader.schema
    │                       ├── common.protocol.header.namesrv.UnRegisterBrokerRequestHeader.schema
    │                       ├── common.protocol.header.namesrv.WipeWritePermOfBrokerRequestHeader.schema
    │                       ├── common.protocol.header.namesrv.WipeWritePermOfBrokerResponseHeader.schema
    │                       ├── common.protocol.header.NotifyConsumerIdsChangedRequestHeader.schema
    │                       ├── common.protocol.header.PullMessageRequestHeader.schema
    │                       ├── common.protocol.header.PullMessageResponseHeader.schema
    │                       ├── common.protocol.header.QueryConsumeQueueRequestHeader.schema
    │                       ├── common.protocol.header.QueryConsumerOffsetRequestHeader.schema
    │                       ├── common.protocol.header.QueryConsumerOffsetResponseHeader.schema
    │                       ├── common.protocol.header.QueryConsumeTimeSpanRequestHeader.schema
    │                       ├── common.protocol.header.QueryCorrectionOffsetHeader.schema
    │                       ├── common.protocol.header.QueryMessageRequestHeader.schema
    │                       ├── common.protocol.header.QueryMessageResponseHeader.schema
    │                       ├── common.protocol.header.QueryTopicConsumeByWhoRequestHeader.schema
    │                       ├── common.protocol.header.ReplyMessageRequestHeader.schema
    │                       ├── common.protocol.header.ResetOffsetRequestHeader.schema
    │                       ├── common.protocol.header.ResumeCheckHalfMessageRequestHeader.schema
    │                       ├── common.protocol.header.SearchOffsetRequestHeader.schema
    │                       ├── common.protocol.header.SearchOffsetResponseHeader.schema
    │                       ├── common.protocol.header.SendMessageRequestHeader.schema
    │                       ├── common.protocol.header.SendMessageRequestHeaderV2.schema
    │                       ├── common.protocol.header.SendMessageResponseHeader.schema
    │                       ├── common.protocol.header.UnregisterClientRequestHeader.schema
    │                       ├── common.protocol.header.UnregisterClientResponseHeader.schema
    │                       ├── common.protocol.header.UpdateConsumerOffsetRequestHeader.schema
    │                       ├── common.protocol.header.UpdateConsumerOffsetResponseHeader.schema
    │                       ├── common.protocol.header.UpdateGlobalWhiteAddrsConfigRequestHeader.schema
    │                       ├── common.protocol.header.ViewBrokerStatsDataRequestHeader.schema
    │                       ├── common.protocol.header.ViewMessageRequestHeader.schema
    │                       ├── common.protocol.header.ViewMessageResponseHeader.schema
    │                       └── common.protocol.RequestCode.schema
    ├── tieredstore
    │   ├── BUILD.bazel
    │   ├── pom.xml
    │   ├── README.md
    │   ├── src
    │   │   ├── main
    │   │   │   └── java
    │   │   │       └── org
    │   │   │           └── apache
    │   │   │               └── rocketmq
    │   │   │                   └── tieredstore
    │   │   │                       ├── common
    │   │   │                       │   ├── AppendResult.java
    │   │   │                       │   ├── FileSegmentType.java
    │   │   │                       │   ├── GetMessageResultExt.java
    │   │   │                       │   ├── InFlightRequestFuture.java
    │   │   │                       │   ├── InFlightRequestKey.java
    │   │   │                       │   ├── MessageCacheKey.java
    │   │   │                       │   ├── SelectBufferResult.java
    │   │   │                       │   ├── SelectBufferResultWrapper.java
    │   │   │                       │   ├── TieredMessageStoreConfig.java
    │   │   │                       │   └── TieredStoreExecutor.java
    │   │   │                       ├── exception
    │   │   │                       │   ├── TieredStoreErrorCode.java
    │   │   │                       │   └── TieredStoreException.java
    │   │   │                       ├── file
    │   │   │                       │   ├── CompositeAccess.java
    │   │   │                       │   ├── CompositeFlatFile.java
    │   │   │                       │   ├── CompositeQueueFlatFile.java
    │   │   │                       │   ├── TieredCommitLog.java
    │   │   │                       │   ├── TieredConsumeQueue.java
    │   │   │                       │   ├── TieredFileAllocator.java
    │   │   │                       │   ├── TieredFlatFile.java
    │   │   │                       │   └── TieredFlatFileManager.java
    │   │   │                       ├── index
    │   │   │                       │   ├── IndexFile.java
    │   │   │                       │   ├── IndexItem.java
    │   │   │                       │   ├── IndexService.java
    │   │   │                       │   ├── IndexStoreFile.java
    │   │   │                       │   └── IndexStoreService.java
    │   │   │                       ├── MessageStoreFetcher.java
    │   │   │                       ├── metadata
    │   │   │                       │   ├── FileSegmentMetadata.java
    │   │   │                       │   ├── QueueMetadata.java
    │   │   │                       │   ├── TieredMetadataManager.java
    │   │   │                       │   ├── TieredMetadataSerializeWrapper.java
    │   │   │                       │   ├── TieredMetadataStore.java
    │   │   │                       │   └── TopicMetadata.java
    │   │   │                       ├── metrics
    │   │   │                       │   ├── TieredStoreMetricsConstant.java
    │   │   │                       │   └── TieredStoreMetricsManager.java
    │   │   │                       ├── provider
    │   │   │                       │   ├── FileSegmentAllocator.java
    │   │   │                       │   ├── posix
    │   │   │                       │   │   └── PosixFileSegment.java
    │   │   │                       │   ├── stream
    │   │   │                       │   │   ├── CommitLogInputStream.java
    │   │   │                       │   │   ├── FileSegmentInputStreamFactory.java
    │   │   │                       │   │   └── FileSegmentInputStream.java
    │   │   │                       │   ├── TieredFileSegment.java
    │   │   │                       │   ├── TieredStoreProvider.java
    │   │   │                       │   ├── TieredStoreTopicBlackListFilter.java
    │   │   │                       │   └── TieredStoreTopicFilter.java
    │   │   │                       ├── TieredDispatcher.java
    │   │   │                       ├── TieredMessageFetcher.java
    │   │   │                       ├── TieredMessageStore.java
    │   │   │                       └── util
    │   │   │                           ├── CQItemBufferUtil.java
    │   │   │                           ├── MessageBufferUtil.java
    │   │   │                           └── TieredStoreUtil.java
    │   │   └── test
    │   │       ├── java
    │   │       │   └── org
    │   │       │       └── apache
    │   │       │           └── rocketmq
    │   │       │               └── tieredstore
    │   │       │                   ├── common
    │   │       │                   │   ├── GetMessageResultExtTest.java
    │   │       │                   │   ├── InFlightRequestFutureTest.java
    │   │       │                   │   └── SelectBufferResultTest.java
    │   │       │                   ├── file
    │   │       │                   │   ├── CompositeQueueFlatFileTest.java
    │   │       │                   │   ├── TieredCommitLogTest.java
    │   │       │                   │   ├── TieredFlatFileManagerTest.java
    │   │       │                   │   └── TieredFlatFileTest.java
    │   │       │                   ├── index
    │   │       │                   │   ├── IndexItemTest.java
    │   │       │                   │   ├── IndexStoreFileTest.java
    │   │       │                   │   ├── IndexStoreServiceBenchTest.java
    │   │       │                   │   └── IndexStoreServiceTest.java
    │   │       │                   ├── metadata
    │   │       │                   │   └── TieredMetadataManagerTest.java
    │   │       │                   ├── metrics
    │   │       │                   │   └── TieredStoreMetricsManagerTest.java
    │   │       │                   ├── provider
    │   │       │                   │   ├── memory
    │   │       │                   │   │   ├── MemoryFileSegment.java
    │   │       │                   │   │   └── MemoryFileSegmentWithoutCheck.java
    │   │       │                   │   ├── MockFileSegmentInputStream.java
    │   │       │                   │   ├── posix
    │   │       │                   │   │   └── PosixFileSegmentTest.java
    │   │       │                   │   ├── TieredFileSegmentInputStreamTest.java
    │   │       │                   │   ├── TieredFileSegmentTest.java
    │   │       │                   │   └── TieredStoreTopicBlackListFilterTest.java
    │   │       │                   ├── TieredDispatcherTest.java
    │   │       │                   ├── TieredMessageFetcherTest.java
    │   │       │                   ├── TieredMessageStoreTest.java
    │   │       │                   ├── TieredStoreTestUtil.java
    │   │       │                   └── util
    │   │       │                       ├── CQItemBufferUtilTest.java
    │   │       │                       ├── MessageBufferUtilTest.java
    │   │       │                       └── TieredStoreUtilTest.java
    │   │       └── resources
    │   │           └── rmq.logback-test.xml
    │   └── tiered_storage_arch.png
    ├── tools
    │   ├── BUILD.bazel
    │   ├── pom.xml
    │   └── src
    │       ├── main
    │       │   ├── java
    │       │   │   └── org
    │       │   │       └── apache
    │       │   │           └── rocketmq
    │       │   │               └── tools
    │       │   │                   ├── admin
    │       │   │                   │   ├── api
    │       │   │                   │   │   ├── BrokerOperatorResult.java
    │       │   │                   │   │   ├── MessageTrack.java
    │       │   │                   │   │   └── TrackType.java
    │       │   │                   │   ├── common
    │       │   │                   │   │   ├── AdminToolHandler.java
    │       │   │                   │   │   ├── AdminToolResult.java
    │       │   │                   │   │   └── AdminToolsResultCodeEnum.java
    │       │   │                   │   ├── DefaultMQAdminExtImpl.java
    │       │   │                   │   ├── DefaultMQAdminExt.java
    │       │   │                   │   ├── MQAdminExt.java
    │       │   │                   │   └── MQAdminUtils.java
    │       │   │                   ├── command
    │       │   │                   │   ├── acl
    │       │   │                   │   │   ├── ClusterAclConfigVersionListSubCommand.java
    │       │   │                   │   │   ├── DeleteAccessConfigSubCommand.java
    │       │   │                   │   │   ├── UpdateAccessConfigSubCommand.java
    │       │   │                   │   │   └── UpdateGlobalWhiteAddrSubCommand.java
    │       │   │                   │   ├── broker
    │       │   │                   │   │   ├── BrokerConsumeStatsSubCommad.java
    │       │   │                   │   │   ├── BrokerStatusSubCommand.java
    │       │   │                   │   │   ├── CleanExpiredCQSubCommand.java
    │       │   │                   │   │   ├── CleanUnusedTopicCommand.java
    │       │   │                   │   │   ├── CommitLogSetReadAheadSubCommand.java
    │       │   │                   │   │   ├── DeleteExpiredCommitLogSubCommand.java
    │       │   │                   │   │   ├── GetBrokerConfigCommand.java
    │       │   │                   │   │   ├── GetBrokerEpochSubCommand.java
    │       │   │                   │   │   ├── GetColdDataFlowCtrInfoSubCommand.java
    │       │   │                   │   │   ├── RemoveColdDataFlowCtrGroupConfigSubCommand.java
    │       │   │                   │   │   ├── ResetMasterFlushOffsetSubCommand.java
    │       │   │                   │   │   ├── SendMsgStatusCommand.java
    │       │   │                   │   │   ├── UpdateBrokerConfigSubCommand.java
    │       │   │                   │   │   └── UpdateColdDataFlowCtrGroupConfigSubCommand.java
    │       │   │                   │   ├── cluster
    │       │   │                   │   │   ├── ClusterListSubCommand.java
    │       │   │                   │   │   └── CLusterSendMsgRTCommand.java
    │       │   │                   │   ├── CommandUtil.java
    │       │   │                   │   ├── connection
    │       │   │                   │   │   ├── ConsumerConnectionSubCommand.java
    │       │   │                   │   │   └── ProducerConnectionSubCommand.java
    │       │   │                   │   ├── consumer
    │       │   │                   │   │   ├── ConsumerProgressSubCommand.java
    │       │   │                   │   │   ├── ConsumerStatusSubCommand.java
    │       │   │                   │   │   ├── ConsumerSubCommand.java
    │       │   │                   │   │   ├── DeleteSubscriptionGroupCommand.java
    │       │   │                   │   │   ├── GetConsumerConfigSubCommand.java
    │       │   │                   │   │   ├── SetConsumeModeSubCommand.java
    │       │   │                   │   │   ├── StartMonitoringSubCommand.java
    │       │   │                   │   │   └── UpdateSubGroupSubCommand.java
    │       │   │                   │   ├── container
    │       │   │                   │   │   ├── AddBrokerSubCommand.java
    │       │   │                   │   │   └── RemoveBrokerSubCommand.java
    │       │   │                   │   ├── controller
    │       │   │                   │   │   ├── CleanControllerBrokerMetaSubCommand.java
    │       │   │                   │   │   ├── GetControllerConfigSubCommand.java
    │       │   │                   │   │   ├── GetControllerMetaDataSubCommand.java
    │       │   │                   │   │   ├── ReElectMasterSubCommand.java
    │       │   │                   │   │   └── UpdateControllerConfigSubCommand.java
    │       │   │                   │   ├── export
    │       │   │                   │   │   ├── ExportConfigsCommand.java
    │       │   │                   │   │   ├── ExportMetadataCommand.java
    │       │   │                   │   │   ├── ExportMetadataInRocksDBCommand.java
    │       │   │                   │   │   └── ExportMetricsCommand.java
    │       │   │                   │   ├── ha
    │       │   │                   │   │   ├── GetSyncStateSetSubCommand.java
    │       │   │                   │   │   └── HAStatusSubCommand.java
    │       │   │                   │   ├── message
    │       │   │                   │   │   ├── CheckMsgSendRTCommand.java
    │       │   │                   │   │   ├── ConsumeMessageCommand.java
    │       │   │                   │   │   ├── DecodeMessageIdCommond.java
    │       │   │                   │   │   ├── DumpCompactionLogCommand.java
    │       │   │                   │   │   ├── PrintMessageByQueueCommand.java
    │       │   │                   │   │   ├── PrintMessageSubCommand.java
    │       │   │                   │   │   ├── QueryMsgByIdSubCommand.java
    │       │   │                   │   │   ├── QueryMsgByKeySubCommand.java
    │       │   │                   │   │   ├── QueryMsgByOffsetSubCommand.java
    │       │   │                   │   │   ├── QueryMsgByUniqueKeySubCommand.java
    │       │   │                   │   │   ├── QueryMsgTraceByIdSubCommand.java
    │       │   │                   │   │   └── SendMessageCommand.java
    │       │   │                   │   ├── metadata
    │       │   │                   │   │   └── RocksDBConfigToJsonCommand.java
    │       │   │                   │   ├── MQAdminStartup.java
    │       │   │                   │   ├── namesrv
    │       │   │                   │   │   ├── AddWritePermSubCommand.java
    │       │   │                   │   │   ├── DeleteKvConfigCommand.java
    │       │   │                   │   │   ├── GetNamesrvConfigCommand.java
    │       │   │                   │   │   ├── UpdateKvConfigCommand.java
    │       │   │                   │   │   ├── UpdateNamesrvConfigCommand.java
    │       │   │                   │   │   └── WipeWritePermSubCommand.java
    │       │   │                   │   ├── offset
    │       │   │                   │   │   ├── CloneGroupOffsetCommand.java
    │       │   │                   │   │   ├── GetConsumerStatusCommand.java
    │       │   │                   │   │   ├── ResetOffsetByTimeCommand.java
    │       │   │                   │   │   ├── ResetOffsetByTimeOldCommand.java
    │       │   │                   │   │   └── SkipAccumulationSubCommand.java
    │       │   │                   │   ├── producer
    │       │   │                   │   │   └── ProducerSubCommand.java
    │       │   │                   │   ├── queue
    │       │   │                   │   │   └── QueryConsumeQueueCommand.java
    │       │   │                   │   ├── stats
    │       │   │                   │   │   └── StatsAllSubCommand.java
    │       │   │                   │   ├── SubCommandException.java
    │       │   │                   │   ├── SubCommand.java
    │       │   │                   │   └── topic
    │       │   │                   │       ├── AllocateMQSubCommand.java
    │       │   │                   │       ├── DeleteTopicSubCommand.java
    │       │   │                   │       ├── RebalanceResult.java
    │       │   │                   │       ├── RemappingStaticTopicSubCommand.java
    │       │   │                   │       ├── TopicClusterSubCommand.java
    │       │   │                   │       ├── TopicListSubCommand.java
    │       │   │                   │       ├── TopicRouteSubCommand.java
    │       │   │                   │       ├── TopicStatusSubCommand.java
    │       │   │                   │       ├── UpdateOrderConfCommand.java
    │       │   │                   │       ├── UpdateStaticTopicSubCommand.java
    │       │   │                   │       ├── UpdateTopicPermSubCommand.java
    │       │   │                   │       └── UpdateTopicSubCommand.java
    │       │   │                   └── monitor
    │       │   │                       ├── DefaultMonitorListener.java
    │       │   │                       ├── DeleteMsgsEvent.java
    │       │   │                       ├── FailedMsgs.java
    │       │   │                       ├── MonitorConfig.java
    │       │   │                       ├── MonitorListener.java
    │       │   │                       ├── MonitorService.java
    │       │   │                       └── UndoneMsgs.java
    │       │   └── resources
    │       │       └── rmq.tools.logback.xml
    │       └── test
    │           ├── java
    │           │   └── org
    │           │       └── apache
    │           │           └── rocketmq
    │           │               └── tools
    │           │                   ├── admin
    │           │                   │   └── DefaultMQAdminExtTest.java
    │           │                   ├── command
    │           │                   │   ├── acl
    │           │                   │   │   ├── ClusterAclConfigVersionListSubCommandTest.java
    │           │                   │   │   ├── DeleteAccessConfigSubCommandTest.java
    │           │                   │   │   ├── UpdateAccessConfigSubCommandTest.java
    │           │                   │   │   └── UpdateGlobalWhiteAddrSubCommandTest.java
    │           │                   │   ├── broker
    │           │                   │   │   ├── BrokerConsumeStatsSubCommadTest.java
    │           │                   │   │   ├── BrokerStatusSubCommandTest.java
    │           │                   │   │   ├── CleanExpiredCQSubCommandTest.java
    │           │                   │   │   ├── CleanUnusedTopicCommandTest.java
    │           │                   │   │   ├── DeleteExpiredCommitLogSubCommandTest.java
    │           │                   │   │   ├── GetBrokerConfigCommandTest.java
    │           │                   │   │   ├── SendMsgStatusCommandTest.java
    │           │                   │   │   └── UpdateBrokerConfigSubCommandTest.java
    │           │                   │   ├── CommandUtilTest.java
    │           │                   │   ├── connection
    │           │                   │   │   ├── ConsumerConnectionSubCommandTest.java
    │           │                   │   │   └── ProducerConnectionSubCommandTest.java
    │           │                   │   ├── consumer
    │           │                   │   │   ├── ConsumerProgressSubCommandTest.java
    │           │                   │   │   ├── ConsumerStatusSubCommandTest.java
    │           │                   │   │   └── GetConsumerConfigSubCommandTest.java
    │           │                   │   ├── message
    │           │                   │   │   ├── ConsumeMessageCommandTest.java
    │           │                   │   │   ├── QueryMsgByUniqueKeySubCommandTest.java
    │           │                   │   │   ├── QueryMsgTraceByIdSubCommandTest.java
    │           │                   │   │   └── SendMessageCommandTest.java
    │           │                   │   ├── metadata
    │           │                   │   │   └── ExportMetadataInRocksDBCommandTest.java
    │           │                   │   ├── namesrv
    │           │                   │   │   ├── AddWritePermSubCommandTest.java
    │           │                   │   │   ├── GetNamesrvConfigCommandTest.java
    │           │                   │   │   ├── UpdateKvConfigCommandTest.java
    │           │                   │   │   └── WipeWritePermSubCommandTest.java
    │           │                   │   ├── offset
    │           │                   │   │   ├── GetConsumerStatusCommandTest.java
    │           │                   │   │   ├── ResetOffsetByTimeCommandTest.java
    │           │                   │   │   ├── ResetOffsetByTimeOldCommandTest.java
    │           │                   │   │   └── SkipAccumulationCommandTest.java
    │           │                   │   ├── producer
    │           │                   │   │   └── ProducerSubCommandTest.java
    │           │                   │   ├── server
    │           │                   │   │   ├── NameServerMocker.java
    │           │                   │   │   └── ServerResponseMocker.java
    │           │                   │   └── topic
    │           │                   │       ├── AllocateMQSubCommandTest.java
    │           │                   │       ├── DeleteTopicSubCommandTest.java
    │           │                   │       ├── TopicClusterSubCommandTest.java
    │           │                   │       ├── TopicRouteSubCommandTest.java
    │           │                   │       ├── TopicStatusSubCommandTest.java
    │           │                   │       ├── UpdateOrderConfCommandTest.java
    │           │                   │       ├── UpdateTopicPermSubCommandTest.java
    │           │                   │       └── UpdateTopicSubCommandTest.java
    │           │                   └── monitor
    │           │                       ├── DefaultMonitorListenerTest.java
    │           │                       └── MonitorServiceTest.java
    │           └── resources
    │               └── rmq.logback-test.xml
    └── WORKSPACE

737 directories, 2336 files

网友评论

发表评论

(您的评论需要经过审核才能显示)

查看所有0条评论>>

小贴士

感谢您为本站写下的评论,您的评论对其它用户来说具有重要的参考价值,所以请认真填写。

  • 类似“顶”、“沙发”之类没有营养的文字,对勤劳贡献的楼主来说是令人沮丧的反馈信息。
  • 相信您也不想看到一排文字/表情墙,所以请不要反馈意义不大的重复字符,也请尽量不要纯表情的回复。
  • 提问之前请再仔细看一遍楼主的说明,或许是您遗漏了。
  • 请勿到处挖坑绊人、招贴广告。既占空间让人厌烦,又没人会搭理,于人于己都无利。

关于好例子网

本站旨在为广大IT学习爱好者提供一个非营利性互相学习交流分享平台。本站所有资源都可以被免费获取学习研究。本站资源来自网友分享,对搜索内容的合法性不具有预见性、识别性、控制性,仅供学习研究,请务必在下载后24小时内给予删除,不得用于其他任何用途,否则后果自负。基于互联网的特殊性,平台无法对用户传输的作品、信息、内容的权属或合法性、安全性、合规性、真实性、科学性、完整权、有效性等进行实质审查;无论平台是否已进行审查,用户均应自行承担因其传输的作品、信息、内容而可能或已经产生的侵权或权属纠纷等法律责任。本站所有资源不代表本站的观点或立场,基于网友分享,根据中国法律《信息网络传播权保护条例》第二十二与二十三条之规定,若资源存在侵权或相关问题请联系本站客服人员,点此联系我们。关于更多版权及免责申明参见 版权及免责申明

;
报警