This is an automated email from the ASF dual-hosted git repository. duhengforever pushed a commit to branch develop in repository https://gitbox.apache.org/repos/asf/rocketmq.git
commit 10326b479af2282310ea0f496f6c08229e4ae126 Merge: 6f5cd4aa4 a2c96fd7b Author: Heng Du <[email protected]> AuthorDate: Wed Jul 13 14:54:23 2022 +0800 Merge pull request #4578 from apache/develop-merge-5.0.0 The code of 5.0.0-beta merge into develop branch .travis.yml | 4 +- acl/pom.xml | 2 +- .../org/apache/rocketmq/acl/common/AclUtils.java | 39 + .../apache/rocketmq/acl/common/AclUtilsTest.java | 21 + acl/src/test/resources/conf/plain_acl.yml | 5 - broker/pom.xml | 10 +- .../apache/rocketmq/broker/BrokerController.java | 1761 ++++++++++++++----- .../rocketmq/broker/BrokerPathConfigHelper.java | 12 + .../rocketmq/broker/BrokerPreOnlineService.java | 277 +++ .../org/apache/rocketmq/broker/BrokerStartup.java | 58 +- .../org/apache/rocketmq/broker/ShutdownHook.java | 15 +- .../broker/client/ClientHousekeepingService.java | 12 +- .../rocketmq/broker/client/ConsumerGroupInfo.java | 25 +- .../broker/client/ConsumerIdsChangeListener.java | 2 + .../rocketmq/broker/client/ConsumerManager.java | 42 +- .../client/DefaultConsumerIdsChangeListener.java | 68 +- .../rocketmq/broker/client/ProducerManager.java | 23 +- .../rocketmq/broker/client/net/Broker2Client.java | 8 +- .../client/rebalance/RebalanceLockManager.java | 99 +- .../broker/dledger/DLedgerRoleChangeHandler.java | 90 +- .../rocketmq/broker/failover/EscapeBridge.java | 268 +++ .../broker/filtersrv/FilterServerManager.java | 6 +- .../rocketmq/broker/latency/BrokerFastFailure.java | 44 +- .../broker/loadbalance/AssignmentManager.java | 140 ++ .../loadbalance/MessageRequestModeManager.java | 95 + .../longpolling/LmqPullRequestHoldService.java | 3 + .../broker/longpolling/ManyPullRequest.java | 4 + .../broker/longpolling/NotificationRequest.java | 57 + .../longpolling/NotifyMessageArrivingListener.java | 12 +- .../rocketmq/broker/longpolling/PopRequest.java | 89 + .../broker/longpolling/PullRequestHoldService.java | 36 +- .../broker/mqtrace/AbortProcessException.java | 69 + .../broker/mqtrace/ConsumeMessageContext.java | 77 +- .../broker/mqtrace/SendMessageContext.java | 102 +- .../broker/offset/ConsumerOffsetManager.java | 85 +- .../broker/offset/ConsumerOrderInfoManager.java | 426 +++++ .../apache/rocketmq/broker/out/BrokerOuterAPI.java | 750 +++++++- .../broker/pagecache/OneMessageTransfer.java | 1 + .../broker/plugin/AbstractPluginMessageStore.java | 296 +++- .../broker/plugin/BrokerAttachedPlugin.java | 74 + .../broker/plugin/MessageStoreFactory.java | 15 +- .../broker/plugin/MessageStorePluginContext.java | 16 +- .../broker/plugin/PullMessageResultHandler.java | 53 + .../processor/AbstractSendMessageProcessor.java | 457 ++++- .../broker/processor/AckMessageProcessor.java | 214 +++ .../broker/processor/AdminBrokerProcessor.java | 992 +++++++++-- .../processor/ChangeInvisibleTimeProcessor.java | 206 +++ .../broker/processor/ClientManageProcessor.java | 52 +- .../broker/processor/ConsumerManageProcessor.java | 188 +- .../processor/DefaultPullMessageResultHandler.java | 244 +++ .../broker/processor/EndTransactionProcessor.java | 10 +- .../broker/processor/ForwardRequestProcessor.java | 4 +- .../broker/processor/NotificationProcessor.java | 318 ++++ .../broker/processor/PeekMessageProcessor.java | 271 +++ .../broker/processor/PollingInfoProcessor.java | 119 ++ .../broker/processor/PopBufferMergeService.java | 776 +++++++++ .../broker/processor/PopMessageProcessor.java | 983 +++++++++++ .../broker/processor/PopReviveService.java | 488 ++++++ .../broker/processor/PullMessageProcessor.java | 574 +++--- .../broker/processor/QueryAssignmentProcessor.java | 324 ++++ .../broker/processor/QueryMessageProcessor.java | 15 +- .../broker/processor/ReplyMessageProcessor.java | 13 +- .../broker/processor/SendMessageCallback.java | 22 +- .../broker/processor/SendMessageProcessor.java | 603 +++---- .../schedule/DelayOffsetSerializeWrapper.java | 13 +- .../broker}/schedule/ScheduleMessageService.java | 183 +- .../rocketmq/broker/slave/SlaveSynchronize.java | 73 +- .../subscription/SubscriptionGroupManager.java | 112 +- .../rocketmq/broker/topic/TopicConfigManager.java | 287 ++- .../topic/TopicQueueMappingCleanService.java | 337 ++++ .../broker/topic/TopicQueueMappingManager.java | 259 +++ .../AbstractTransactionalMessageCheckListener.java | 45 +- .../broker/transaction/OperationResult.java | 8 +- .../TransactionalMessageCheckService.java | 3 + .../transaction/TransactionalMessageService.java | 2 +- .../transaction/jdbc/JDBCTransactionStore.java | 242 --- .../jdbc/JDBCTransactionStoreConfig.java | 57 - .../DefaultTransactionalMessageCheckListener.java | 2 +- .../queue/TransactionalMessageBridge.java | 2 +- .../queue/TransactionalMessageServiceImpl.java | 2 +- .../org/apache/rocketmq/broker/util/HookUtils.java | 164 ++ .../OperationResult.java => util/MsgUtil.java} | 35 +- .../rocketmq/broker/BrokerControllerTest.java | 3 +- .../apache/rocketmq/broker/BrokerOuterAPITest.java | 61 +- .../apache/rocketmq/broker/BrokerStartupTest.java | 20 +- .../broker/filter/MessageStoreWithFilterTest.java | 56 +- .../broker/offset/ConsumerOffsetManagerTest.java | 55 + .../broker/pagecache/OneMessageTransferTest.java | 8 +- ...essorTest.java => AckMessageProcessorTest.java} | 97 +- .../broker/processor/AdminBrokerProcessorTest.java | 107 +- ....java => ChangeInvisibleTimeProcessorTest.java} | 96 +- .../processor/ClientManageProcessorTest.java | 1 - .../processor/ConsumerManageProcessorTest.java | 91 + .../processor/EndTransactionProcessorTest.java | 2 +- .../processor/PopBufferMergeServiceTest.java | 120 ++ ...essorTest.java => PopMessageProcessorTest.java} | 163 +- .../broker/processor/PullMessageProcessorTest.java | 28 +- .../processor/QueryAssignmentProcessorTest.java | 227 +++ .../processor/ReplyMessageProcessorTest.java | 2 +- .../broker/processor/SendMessageProcessorTest.java | 217 ++- .../schedule/ScheduleMessageServiceTest.java | 145 +- .../broker/substription/ForbiddenTest.java | 64 + .../broker/topic/TopicConfigManagerTest.java | 324 ++++ .../broker/topic/TopicQueueMappingManagerTest.java | 112 ++ ...faultTransactionalMessageCheckListenerTest.java | 2 +- .../queue/TransactionalMessageBridgeTest.java | 2 +- .../queue/TransactionalMessageServiceImplTest.java | 2 +- .../rocketmq/broker/util/ServiceProviderTest.java | 7 +- .../util/TransactionalMessageServiceImpl.java | 2 +- client/pom.xml | 11 +- .../java/org/apache/rocketmq/client/MQAdmin.java | 14 +- .../rocketmq/client/consumer/AckCallback.java | 10 +- .../apache/rocketmq/client/consumer/AckResult.java | 40 +- .../apache/rocketmq/client/consumer/AckStatus.java | 17 +- .../client/consumer/DefaultMQPullConsumer.java | 14 +- .../client/consumer/DefaultMQPushConsumer.java | 70 +- .../rocketmq/client/consumer/MQPullConsumer.java | 7 + .../rocketmq/client/consumer/PopCallback.java | 13 +- .../consumer/{PullResult.java => PopResult.java} | 59 +- .../apache/rocketmq/client/consumer/PopStatus.java | 29 +- .../rocketmq/client/consumer/PullResult.java | 1 + .../AbstractAllocateMessageQueueStrategy.java | 2 +- .../rebalance/AllocateMessageQueueAveragely.java | 10 + .../AllocateMessageQueueAveragelyByCircle.java | 10 + .../consumer/store/RemoteBrokerOffsetStore.java | 31 +- .../client/exception/MQBrokerException.java | 6 + .../client/exception/MQRedirectException.java | 26 +- .../client/exception/OffsetNotFoundException.java | 23 +- .../rocketmq/client/impl/BaseInvokeCallback.java | 26 +- .../client/impl/ClientRemotingProcessor.java | 3 +- .../apache/rocketmq/client/impl/MQAdminImpl.java | 64 +- .../rocketmq/client/impl/MQClientAPIImpl.java | 632 ++++++- .../ConsumeMessageConcurrentlyService.java | 11 +- .../consumer/ConsumeMessageOrderlyService.java | 14 +- ...a => ConsumeMessagePopConcurrentlyService.java} | 260 +-- .../consumer/ConsumeMessagePopOrderlyService.java | 408 +++++ .../impl/consumer/ConsumeMessageService.java | 5 + .../impl/consumer/DefaultLitePullConsumerImpl.java | 45 +- .../impl/consumer/DefaultMQPullConsumerImpl.java | 43 +- .../impl/consumer/DefaultMQPushConsumerImpl.java | 412 ++++- .../client/impl/consumer/MessageQueueLock.java | 29 +- .../client/impl/consumer/MessageRequest.java | 10 +- .../client/impl/consumer/PopProcessQueue.java | 84 + .../consumer/{PullRequest.java => PopRequest.java} | 71 +- .../client/impl/consumer/PullAPIWrapper.java | 141 +- .../client/impl/consumer/PullMessageService.java | 47 +- .../rocketmq/client/impl/consumer/PullRequest.java | 8 +- .../client/impl/consumer/PullResultExt.java | 12 + .../client/impl/consumer/RebalanceImpl.java | 479 ++++- .../impl/consumer/RebalanceLitePullImpl.java | 25 +- .../client/impl/consumer/RebalancePullImpl.java | 26 +- .../client/impl/consumer/RebalancePushImpl.java | 71 +- .../client/impl/factory/MQClientInstance.java | 174 +- .../impl/producer/DefaultMQProducerImpl.java | 20 +- .../rocketmq/client/latency/MQFaultStrategy.java | 2 +- .../client/producer/DefaultMQProducer.java | 16 +- .../rocketmq/client/producer/SendResult.java | 9 + .../consumer/DefaultLitePullConsumerTest.java | 32 +- .../client/consumer/DefaultMQPushConsumerTest.java | 83 +- .../store/RemoteBrokerOffsetStoreTest.java | 10 +- .../rocketmq/client/impl/MQClientAPIImplTest.java | 463 ++++- .../consumer/DefaultMQPushConsumerImplTest.java | 63 + .../impl/consumer/RebalancePushImplTest.java | 13 - .../client/impl/factory/MQClientInstanceTest.java | 1 + .../client/producer/DefaultMQProducerTest.java | 2 +- .../selector/SelectMessageQueueRetryTest.java | 1 - .../powermock/extensions/configuration.properties | 16 + common/pom.xml | 6 +- ...uestHeader.java => AbstractBrokerRunnable.java} | 31 +- .../org/apache/rocketmq/common/BrokerConfig.java | 621 ++++++- .../org/apache/rocketmq/common/BrokerIdentity.java | 149 ++ .../org/apache/rocketmq/common/BrokerSyncInfo.java | 70 + .../org/apache/rocketmq/common/ConfigManager.java | 11 + .../org/apache/rocketmq/common/Configuration.java | 41 + .../org/apache/rocketmq/common/DataVersion.java | 49 +- .../{ThreadFactoryImpl.java => KeyBuilder.java} | 32 +- .../org/apache/rocketmq/common/LockCallback.java | 12 +- .../java/org/apache/rocketmq/common/MQVersion.java | 2 +- .../java/org/apache/rocketmq/common/MixAll.java | 25 +- .../apache/rocketmq/common/PopAckConstants.java | 44 + .../org/apache/rocketmq/common/ServiceThread.java | 8 +- .../apache/rocketmq/common/ThreadFactoryImpl.java | 13 + .../apache/rocketmq/common/TopicAttributes.java | 47 + .../org/apache/rocketmq/common/TopicConfig.java | 122 +- .../org/apache/rocketmq/common/TopicQueueId.java | 54 + .../MessageType.java => UnlockCallback.java} | 10 +- .../java/org/apache/rocketmq/common/UtilAll.java | 129 +- .../apache/rocketmq/common/admin/TopicOffset.java | 9 + .../rocketmq/common/attribute/Attribute.java | 36 +- .../rocketmq/common/attribute/AttributeParser.java | 79 + .../BooleanAttribute.java} | 28 +- .../MessageType.java => attribute/CQType.java} | 10 +- .../EnumAttribute.java} | 30 +- .../LongRangeAttribute.java} | 33 +- .../TopicMessageType.java} | 29 +- .../ConsumeInitMode.java} | 11 +- .../rocketmq/common/constant/LoggerName.java | 9 +- .../apache/rocketmq/common/constant/PermName.java | 18 +- .../fastjson/GenericMapSuperclassDeserializer.java | 58 + .../rocketmq/common/future/FutureTaskExt.java | 31 +- .../rocketmq/common/message/MessageConst.java | 34 +- .../rocketmq/common/message/MessageDecoder.java | 201 ++- .../apache/rocketmq/common/message/MessageExt.java | 55 + .../rocketmq/common/message/MessageExtBatch.java | 15 +- .../common/message}/MessageExtBrokerInner.java | 3 +- .../rocketmq/common/message/MessageQueue.java | 6 + .../common/message/MessageQueueAssignment.java | 83 + .../{MessageType.java => MessageRequestMode.java} | 30 +- .../rocketmq/common/message/MessageType.java | 28 +- .../rocketmq/common/message/MessageVersion.java | 70 + .../common/namesrv/DefaultTopAddressing.java | 165 ++ .../NameServerUpdateCallback.java} | 10 +- .../rocketmq/common/namesrv/NamesrvConfig.java | 134 +- .../rocketmq/common/namesrv/TopAddressing.java | 88 +- .../rocketmq/common/protocol/ForbiddenType.java | 38 +- .../rocketmq/common/protocol/RequestCode.java | 42 + .../rocketmq/common/protocol/ResponseCode.java | 18 + .../common/protocol/body/BrokerMemberGroup.java | 90 + .../protocol/body/CheckClientRequestBody.java | 9 + .../rocketmq/common/protocol/body/ClusterInfo.java | 28 +- .../body/ConsumerOffsetSerializeWrapper.java | 10 + .../common/protocol/body/ConsumerRunningInfo.java | 63 +- .../body/GetBrokerMemberGroupResponseBody.java | 19 +- .../protocol/body/GetRemoteClientConfigBody.java | 26 +- .../common/protocol/body/HARuntimeInfo.java | 188 ++ .../common/protocol/body/LockBatchRequestBody.java | 9 + ...ava => MessageRequestModeSerializeWrapper.java} | 20 +- ...ntRequestBody.java => PopProcessQueueInfo.java} | 45 +- ...stBody.java => QueryAssignmentRequestBody.java} | 39 +- .../protocol/body/QueryAssignmentResponseBody.java | 22 +- ...ody.java => QuerySubscriptionResponseBody.java} | 22 +- .../common/protocol/body/RegisterBrokerBody.java | 32 +- .../SetMessageRequestModeRequestBody.java} | 54 +- .../TopicConfigAndMappingSerializeWrapper.java | 68 + ...java => TopicQueueMappingSerializeWrapper.java} | 35 +- .../protocol/body/UnlockBatchRequestBody.java | 9 + ...estHeader.java => AckMessageRequestHeader.java} | 37 +- ...uestHeader.java => AddBrokerRequestHeader.java} | 21 +- ....java => ChangeInvisibleTimeRequestHeader.java} | 51 +- ...java => ChangeInvisibleTimeResponseHeader.java} | 39 +- .../ConsumeMessageDirectlyResultRequestHeader.java | 30 + .../protocol/header/CreateTopicRequestHeader.java | 21 + .../DeleteSubscriptionGroupRequestHeader.java | 10 +- ...eader.java => ExchangeHAInfoRequestHeader.java} | 44 +- ...ader.java => ExchangeHAInfoResponseHeader.java} | 44 +- .../common/protocol/header/ExtraInfoUtil.java | 258 +++ ...java => GetBrokerMemberGroupRequestHeader.java} | 31 +- .../GetEarliestMsgStoretimeRequestHeader.java | 8 +- .../protocol/header/GetMaxOffsetRequestHeader.java | 26 +- .../protocol/header/GetMinOffsetRequestHeader.java | 8 +- ...> GetSubscriptionGroupConfigRequestHeader.java} | 24 +- ...eader.java => GetTopicConfigRequestHeader.java} | 19 +- .../header/GetTopicStatsInfoRequestHeader.java | 4 +- ...r.java => InitConsumerOffsetRequestHeader.java} | 17 +- ...tHeader.java => NotificationRequestHeader.java} | 44 +- ...Header.java => NotificationResponseHeader.java} | 19 +- ...a => NotifyMinBrokerIdChangeRequestHeader.java} | 52 +- ...stHeader.java => PeekMessageRequestHeader.java} | 28 +- ...stHeader.java => PollingInfoRequestHeader.java} | 16 +- ...tHeader.java => PollingInfoResponseHeader.java} | 18 +- .../protocol/header/PopMessageRequestHeader.java | 155 ++ .../protocol/header/PopMessageResponseHeader.java | 102 ++ .../protocol/header/PullMessageRequestHeader.java | 56 +- .../protocol/header/PullMessageResponseHeader.java | 66 + .../header/QueryConsumerOffsetRequestHeader.java | 18 +- ... QuerySubscriptionByConsumerRequestHeader.java} | 24 +- ...ava => QueryTopicsByConsumerRequestHeader.java} | 16 +- ...tHeader.java => RemoveBrokerRequestHeader.java} | 39 +- ...ader.java => ResetMasterFlushOffsetHeader.java} | 13 +- .../protocol/header/SearchOffsetRequestHeader.java | 8 +- .../protocol/header/SendMessageRequestHeader.java | 8 +- .../protocol/header/SendMessageResponseHeader.java | 15 + ...r.java => StatisticsMessagesRequestHeader.java} | 37 +- .../header/UpdateConsumerOffsetRequestHeader.java | 8 +- ...java => UpdateGroupForbiddenRequestHeader.java} | 28 +- ...ader.java => BrokerHeartbeatRequestHeader.java} | 58 +- .../header/namesrv/GetRouteInfoRequestHeader.java | 2 + .../namesrv/RegisterBrokerRequestHeader.java | 22 + .../RegisterTopicRequestHeader.java} | 5 +- .../rocketmq/common/protocol/route/BrokerData.java | 55 +- .../route/MessageQueueRouteState.java} | 15 +- .../rocketmq/common/protocol/route/QueueData.java | 13 + .../common/protocol/route/TopicRouteData.java | 92 +- .../common/protocol/route/TopicRouteDatas.java | 21 +- .../apache/rocketmq/common/rpc/ClientMetadata.java | 176 ++ .../apache/rocketmq/common/rpc/RequestBuilder.java | 81 + .../org/apache/rocketmq/common/rpc/RpcClient.java | 29 +- .../apache/rocketmq/common/rpc/RpcClientHook.java | 12 +- .../apache/rocketmq/common/rpc/RpcClientImpl.java | 340 ++++ .../apache/rocketmq/common/rpc/RpcClientUtils.java | 58 + .../apache/rocketmq/common/rpc/RpcException.java | 31 +- .../org/apache/rocketmq/common/rpc/RpcRequest.java | 33 +- .../RpcRequestHeader.java} | 54 +- .../apache/rocketmq/common/rpc/RpcResponse.java | 70 + .../common/rpc/TopicQueueRequestHeader.java | 10 +- .../rocketmq/common/rpc/TopicRequestHeader.java | 19 +- .../common/statictopic/LogicQueueMappingItem.java | 212 +++ .../statictopic/TopicConfigAndQueueMapping.java | 63 + .../statictopic/TopicQueueMappingContext.java | 99 ++ .../statictopic/TopicQueueMappingDetail.java | 144 ++ .../common/statictopic/TopicQueueMappingInfo.java | 161 ++ .../common/statictopic/TopicQueueMappingOne.java | 85 + .../common/statictopic/TopicQueueMappingUtils.java | 694 ++++++++ .../statictopic/TopicRemappingDetailWrapper.java | 104 ++ .../rocketmq/common/statistics/FutureHolder.java | 53 + .../Interceptor.java} | 18 +- .../common/statistics/StatisticsBrief.java | 184 ++ .../statistics/StatisticsBriefInterceptor.java | 76 + .../rocketmq/common/statistics/StatisticsItem.java | 175 ++ .../StatisticsItemFormatter.java} | 32 +- .../common/statistics/StatisticsItemPrinter.java | 50 + .../StatisticsItemScheduledIncrementPrinter.java | 290 +++ .../statistics/StatisticsItemScheduledPrinter.java | 97 ++ .../StatisticsItemStateGetter.java} | 10 +- .../StatisticsKindMeta.java} | 39 +- .../common/statistics/StatisticsManager.java | 157 ++ .../common/subscription/CustomizedRetryPolicy.java | 85 + .../subscription/ExponentialRetryPolicy.java | 74 + .../common/subscription/GroupForbidden.java | 86 + .../common/subscription/GroupRetryPolicy.java | 78 + .../GroupRetryPolicyType.java} | 12 +- .../rocketmq/common/subscription/RetryPolicy.java | 17 +- .../subscription/SubscriptionGroupConfig.java | 95 +- .../rocketmq/common/sysflag/MessageSysFlag.java | 5 +- .../rocketmq/common/sysflag/PullSysFlag.java | 4 + .../rocketmq/common/topic/TopicValidator.java | 2 + .../rocketmq/common/utils/DataConverter.java | 35 +- .../apache/rocketmq/common/utils/MessageUtils.java | 49 + .../common/utils/PositiveAtomicCounter.java | 32 +- .../rocketmq/common/utils/QueueTypeUtils.java | 51 + .../rocketmq/common/utils}/ServiceProvider.java | 27 +- .../apache/rocketmq/common/utils/ThreadUtils.java | 17 +- .../apache/rocketmq/common/ConfigManagerTest.java | 5 +- .../apache/rocketmq/common/DataVersionTest.java | 7 + .../rocketmq/common/RegisterBrokerBodyTest.java | 5 +- .../apache/rocketmq/common/TopicConfigTest.java | 78 + .../org/apache/rocketmq/common/UtilAllTest.java | 21 +- .../common/attribute/AttributeParserTest.java | 70 + .../rocketmq/common/attribute/AttributeTest.java | 70 + .../common/message/MessageClientIDSetterTest.java | 2 - .../common/message/MessageDecoderTest.java | 12 +- .../rocketmq/common/message/MessageTest.java | 1 - .../rocketmq/common/protocol/body/KVTableTest.java | 1 - .../MessageRequestModeSerializeWrapperTest.java | 58 + .../common/protocol/route/TopicRouteDataTest.java | 11 +- .../common/statictopic/TopicQueueMappingTest.java | 78 + .../statictopic/TopicQueueMappingUtilsTest.java | 320 ++++ .../subscription/CustomizedRetryPolicyTest.java | 44 + .../subscription/ExponentialRetryPolicyTest.java | 44 + .../common/subscription/GroupRetryPolicyTest.java | 49 + {logging => container}/pom.xml | 23 +- .../apache/rocketmq/container/BrokerBootHook.java | 36 +- .../apache/rocketmq/container/BrokerContainer.java | 478 +++++ .../rocketmq/container/BrokerContainerConfig.java | 75 + .../container/BrokerContainerProcessor.java | 280 +++ .../rocketmq/container/BrokerContainerStartup.java | 445 +++++ .../ContainerClientHouseKeepingService.java | 104 ++ .../rocketmq/container/IBrokerContainer.java | 142 ++ .../rocketmq/container/InnerBrokerController.java | 204 +++ .../container/InnerSalveBrokerController.java | 46 + .../logback/BrokerLogbackConfigurator.java | 187 ++ .../container/BrokerContainerStartupTest.java | 140 ++ .../rocketmq/container/BrokerContainerTest.java | 371 ++++ .../rocketmq/container/BrokerPreOnlineTest.java | 102 ++ distribution/bin/{mqshutdown => mqbrokercontainer} | 46 +- distribution/bin/mqshutdown | 14 + distribution/bin/runbroker.cmd | 1 + distribution/bin/runbroker.sh | 3 +- .../2container-2m-2s/broker-a-in-container1.conf | 48 +- .../2container-2m-2s/broker-a-in-container2.conf | 48 +- .../2container-2m-2s/broker-b-in-container1.conf | 48 +- .../2container-2m-2s/broker-b-in-container2.conf | 48 +- .../2container-2m-2s/broker-container1.conf | 38 +- .../2container-2m-2s/broker-container2.conf | 38 +- .../container/2container-2m-2s/nameserver.conf | 30 +- distribution/conf/logback_broker.xml | 29 + distribution/conf/logback_tools.xml | 5 + distribution/pom.xml | 6 +- distribution/release.xml | 1 + docs/cn/BrokerContainer.md | 152 ++ docs/cn/QuorumACK.md | 70 + docs/cn/README.md | 12 +- docs/cn/SlaveActingMasterMode.md | 164 ++ ..._Topic_Logic_Queue_\350\256\276\350\256\241.md" | 503 ++++++ docs/cn/statictopic/The_Scope_Of_Static_Topic.md | 116 ++ docs/en/Feature.md | 7 +- example/pom.xml | 6 +- .../rocketmq/example/benchmark/Consumer.java | 2 + .../rocketmq/example/simple/PopPushConsumer.java | 62 + filter/pom.xml | 2 +- logging/pom.xml | 2 +- .../rocketmq/logging/InternalLoggerFactory.java | 11 + .../rocketmq/logging/Slf4jLoggerFactory.java | 87 +- .../apache/rocketmq/logging/inner/SysLogger.java | 4 +- .../rocketmq/logging/Slf4jLoggerFactoryTest.java | 2 +- .../rocketmq/logging/inner/LoggingBuilderTest.java | 8 +- namesrv/pom.xml | 14 +- .../apache/rocketmq/namesrv/NamesrvController.java | 149 +- .../apache/rocketmq/namesrv/NamesrvStartup.java | 11 +- .../namesrv/processor/ClientRequestProcessor.java | 102 ++ .../processor/ClusterTestRequestProcessor.java | 2 +- .../namesrv/processor/DefaultRequestProcessor.java | 364 ++-- .../namesrv/routeinfo/BatchUnRegisterService.java | 85 + .../routeinfo/BrokerHousekeepingService.java | 6 +- .../namesrv/routeinfo/RouteInfoManager.java | 1027 ++++++++--- ...rocessorTest.java => RequestProcessorTest.java} | 159 +- .../namesrv/routeinfo/GetRouteInfoBenchmark.java | 148 ++ .../namesrv/routeinfo/RegisterBrokerBenchmark.java | 177 ++ .../routeinfo/RouteInfoManagerBrokerPermTest.java | 24 +- .../RouteInfoManagerBrokerRegisterTest.java | 61 +- .../RouteInfoManagerStaticRegisterTest.java | 19 +- .../namesrv/routeinfo/RouteInfoManagerTest.java | 223 +++ .../routeinfo/RouteInfoManagerTestBase.java | 1 + .../routeinfo/RouteInfoManager_NewTest.java | 783 +++++++++ openmessaging/pom.xml | 2 +- pom.xml | 22 +- remoting/pom.xml | 2 +- .../java/org/apache/rocketmq/remoting/RPCHook.java | 2 +- .../apache/rocketmq/remoting/RemotingClient.java | 6 +- .../apache/rocketmq/remoting/RemotingServer.java | 6 + .../apache/rocketmq/remoting/RemotingService.java | 5 + .../rocketmq/remoting/common/RemotingHelper.java | 39 + .../rocketmq/remoting/common/RemotingUtil.java | 18 +- .../rocketmq/remoting/netty/NettyClientConfig.java | 15 + .../remoting/netty/NettyRemotingAbstract.java | 103 +- .../remoting/netty/NettyRemotingClient.java | 361 +++- .../remoting/netty/NettyRemotingServer.java | 158 +- .../remoting/netty/NettyRequestProcessor.java | 1 - .../rocketmq/remoting/netty/ResponseFuture.java | 42 +- .../remoting/protocol/FastCodesHeader.java | 2 +- .../remoting/protocol/RemotingCommand.java | 54 +- .../remoting/protocol/RemotingSerializable.java | 7 +- .../rocketmq/remoting/RemotingServerTest.java | 5 +- .../rocketmq/remoting/SubRemotingServerTest.java | 109 ++ .../remoting/netty/NettyRemotingAbstractTest.java | 6 +- .../remoting/protocol/RemotingCommandTest.java | 99 +- srvutil/pom.xml | 10 +- .../rocketmq/srvutil/ConcurrentHashMapUtil.java | 50 + .../apache/rocketmq/srvutil/FileWatchService.java | 4 +- .../rocketmq/util/cache/CacheEvictHandler.java | 10 +- .../apache/rocketmq/util/cache/CacheObject.java | 28 +- .../rocketmq/util/cache/ExpiredLocalCache.java | 84 + .../org/apache/rocketmq/util/cache/LocalCache.java | 58 + .../apache/rocketmq/util/cache/LockManager.java | 54 + store/pom.xml | 2 +- .../rocketmq/store/AllocateMappedFileService.java | 11 +- .../rocketmq/store/AppendMessageCallback.java | 2 +- .../apache/rocketmq/store/AppendMessageResult.java | 12 + .../java/org/apache/rocketmq/store/CommitLog.java | 1138 ++++++++---- .../org/apache/rocketmq/store/ConsumeQueue.java | 313 +++- .../org/apache/rocketmq/store/ConsumeQueueExt.java | 5 + .../apache/rocketmq/store/DefaultMessageStore.java | 1842 ++++++++++++-------- .../org/apache/rocketmq/store/DispatchRequest.java | 45 + .../apache/rocketmq/store/FileQueueSnapshot.java | 90 + .../apache/rocketmq/store/GetMessageResult.java | 37 +- .../org/apache/rocketmq/store/MappedFileQueue.java | 189 +- .../org/apache/rocketmq/store/MessageStore.java | 422 ++++- .../org/apache/rocketmq/store/MultiDispatch.java | 184 -- .../rocketmq/store/MultiPathMappedFileQueue.java | 6 +- .../apache/rocketmq/store/PutMessageContext.java | 48 + .../apache/rocketmq/store/PutMessageResult.java | 26 +- .../apache/rocketmq/store/PutMessageStatus.java | 6 +- .../apache/rocketmq/store/QueryMessageResult.java | 4 + .../rocketmq/store/SelectMappedBufferResult.java | 11 +- .../rocketmq/store/SelectMappedFileResult.java | 34 +- .../org/apache/rocketmq/store/StoreCheckpoint.java | 21 +- .../apache/rocketmq/store/StoreStatsService.java | 11 + .../java/org/apache/rocketmq/store/StoreUtil.java | 44 + .../java/org/apache/rocketmq/store/Swappable.java | 14 +- .../org/apache/rocketmq/store/TopicQueueLock.java | 46 + .../rocketmq/store/config/MessageStoreConfig.java | 484 ++++- .../store/config/StorePathConfigHelper.java | 3 + .../rocketmq/store/dledger/DLedgerCommitLog.java | 275 ++- .../apache/rocketmq/store/ha/DefaultHAClient.java | 392 +++++ ...{HAConnection.java => DefaultHAConnection.java} | 187 +- .../apache/rocketmq/store/ha/DefaultHAService.java | 339 ++++ .../org/apache/rocketmq/store/ha/FlowMonitor.java | 76 + .../rocketmq/store/ha/GroupTransferService.java | 140 ++ .../org/apache/rocketmq/store/ha/HAClient.java | 104 ++ .../org/apache/rocketmq/store/ha/HAConnection.java | 428 +---- .../rocketmq/store/ha/HAConnectionState.java | 31 +- .../ha/HAConnectionStateNotificationRequest.java | 49 + .../ha/HAConnectionStateNotificationService.java | 150 ++ .../org/apache/rocketmq/store/ha/HAService.java | 665 +------ .../apache/rocketmq/store/ha/WaitNotifyObject.java | 67 +- .../apache/rocketmq/store/hook/PutMessageHook.java | 25 +- .../rocketmq/store/hook/SendMessageBackHook.java | 25 +- .../org/apache/rocketmq/store/index/IndexFile.java | 21 +- .../apache/rocketmq/store/index/IndexService.java | 75 +- .../rocketmq/store/logfile/AbstractMappedFile.java | 9 +- .../DefaultMappedFile.java} | 302 ++-- .../apache/rocketmq/store/logfile/MappedFile.java | 340 ++++ .../java/org/apache/rocketmq/store/pop/AckMsg.java | 97 ++ .../apache/rocketmq/store/pop/PopCheckPoint.java | 184 ++ .../rocketmq/store/queue/BatchConsumeQueue.java | 980 +++++++++++ .../rocketmq/store/queue/BatchOffsetIndex.java | 57 + .../store/queue/ConsumeQueueInterface.java | 142 ++ .../rocketmq/store/queue/ConsumeQueueStore.java | 483 +++++ .../org/apache/rocketmq/store/queue/CqUnit.java | 115 ++ .../rocketmq/store/queue/FileQueueLifeCycle.java | 84 + .../rocketmq/store/queue/QueueOffsetAssigner.java | 92 + .../rocketmq/store/queue/ReferredIterator.java | 14 +- .../apache/rocketmq/store/stats/BrokerStats.java | 6 +- .../rocketmq/store/stats/BrokerStatsManager.java | 435 ++++- .../apache/rocketmq/store/util/PerfCounter.java | 370 ++++ .../apache/rocketmq/store/AppendCallbackTest.java | 4 +- .../apache/rocketmq/store/BatchPutMessageTest.java | 61 +- .../apache/rocketmq/store/ConsumeQueueTest.java | 80 +- .../store/DefaultMessageStoreCleanFilesTest.java | 92 +- .../store/DefaultMessageStoreShutDownTest.java | 2 +- .../rocketmq/store/DefaultMessageStoreTest.java | 285 ++- .../java/org/apache/rocketmq/store/HATest.java | 130 +- .../apache/rocketmq/store/MappedFileQueueTest.java | 156 +- .../org/apache/rocketmq/store/MappedFileTest.java | 4 +- .../apache/rocketmq/store/MultiDispatchTest.java | 63 +- .../store/MultiPathMappedFileQueueTest.java | 32 +- .../rocketmq/store/ScheduleMessageServiceTest.java | 194 --- .../org/apache/rocketmq/store/StoreTestBase.java | 13 +- .../store/dledger/DLedgerCommitlogTest.java | 20 +- .../store/dledger/MessageStoreTestBase.java | 5 +- .../rocketmq/store/dledger/MixCommitlogTest.java | 2 - .../apache/rocketmq/store/ha/FlowMonitorTest.java | 61 + .../org/apache/rocketmq/store/ha/HAClientTest.java | 72 + .../org/apache/rocketmq/store/ha/HAServerTest.java | 295 ++++ .../rocketmq/store/ha/WaitNotifyObjectTest.java | 2 - .../store/queue/BatchConsumeMessageTest.java | 454 +++++ .../store/queue/BatchConsumeQueueTest.java | 312 ++++ .../store/queue/ConsumeQueueStoreTest.java | 100 ++ .../rocketmq/store/queue/ConsumeQueueTest.java | 102 ++ .../apache/rocketmq/store/queue/QueueTestBase.java | 114 ++ test/pom.xml | 6 +- .../test/client/rmq/RMQNormalConsumer.java | 5 + .../test/client/rmq/RMQNormalProducer.java | 7 + .../rocketmq/test/client/rmq/RMQPopConsumer.java | 33 + .../test/clientinterface/AbstractMQProducer.java | 1 + .../rocketmq/test/factory/ConsumerFactory.java | 10 + .../rocketmq/test/listener/AbstractListener.java | 2 +- .../org/apache/rocketmq/test/util/MQAdmin.java | 166 -- .../rocketmq/test/util/MQAdminTestUtils.java | 310 ++++ .../org/apache/rocketmq/test/base/BaseConf.java | 168 +- .../rocketmq/test/base/IntegrationTestBase.java | 40 +- .../base/dledger/DLedgerProduceAndConsumeIT.java | 3 +- .../consumer/balance/NormalMsgStaticBalanceIT.java | 18 +- .../normal/BroadCastNormalMsgRecvFailIT.java | 2 + .../test/client/consumer/pop/PopSubCheckIT.java | 97 ++ .../test/client/producer/batch/BatchSendIT.java | 161 ++ .../client/producer/oneway/OneWaySendWithMQIT.java | 10 - .../client/producer/order/OrderMsgRebalanceIT.java | 2 +- .../test/container/AddAndRemoveBrokerIT.java | 83 + .../rocketmq/test/container/BrokerFailoverIT.java | 86 + .../test/container/BrokerMemberGroupIT.java | 71 + .../container/ContainerIntegrationTestBase.java | 666 +++++++ .../test/container/GetMaxOffsetFromSlaveIT.java | 100 ++ .../test/container/GetMetadataReverseIT.java | 231 +++ .../test/container/PullMultipleReplicasIT.java | 201 +++ .../test/container/PushMultipleReplicasIT.java | 114 ++ .../test/container/RebalanceLockOnSlaveIT.java | 209 +++ .../container/ScheduleSlaveActingMasterIT.java | 220 +++ .../test/container/ScheduledMessageIT.java | 153 ++ .../test/container/SendMultipleReplicasIT.java | 159 ++ .../rocketmq/test/container/SlaveBrokerIT.java | 117 ++ .../test/container/SyncConsumerOffsetIT.java | 148 ++ .../rocketmq/test/delay/NormalMsgDelayIT.java | 1 - .../rocketmq/test/offset/OffsetNotFoundIT.java | 132 ++ .../test/smoke/NormalMessageSendAndRecvIT.java | 39 +- .../rocketmq/test/statictopic/StaticTopicIT.java | 523 ++++++ tools/pom.xml | 6 +- .../rocketmq/tools/admin/DefaultMQAdminExt.java | 208 ++- .../tools/admin/DefaultMQAdminExtImpl.java | 1158 ++++++++---- .../apache/rocketmq/tools/admin/MQAdminExt.java | 128 +- .../apache/rocketmq/tools/admin/MQAdminUtils.java | 343 ++++ .../tools/admin/api/BrokerOperatorResult.java | 37 +- .../tools/admin/common/AdminToolHandler.java | 10 +- .../tools/admin/common/AdminToolResult.java | 76 + .../common/AdminToolsResultCodeEnum.java} | 31 +- .../apache/rocketmq/tools/command/CommandUtil.java | 17 +- .../rocketmq/tools/command/MQAdminStartup.java | 38 +- .../tools/command/SubCommandException.java | 4 + .../command/broker/GetBrokerConfigCommand.java | 29 +- .../broker/ResetMasterFlushOffsetSubCommand.java | 71 + .../broker/UpdateBrokerConfigSubCommand.java | 16 +- .../command/cluster/CLusterSendMsgRTCommand.java | 4 +- .../command/cluster/ClusterListSubCommand.java | 108 +- .../consumer/ConsumerProgressSubCommand.java | 17 +- .../consumer/DeleteSubscriptionGroupCommand.java | 19 +- .../consumer/GetConsumerConfigSubCommand.java | 2 +- .../SetConsumeModeSubCommand.java} | 71 +- .../command/consumer/UpdateSubGroupSubCommand.java | 26 + .../command/container/AddBrokerSubCommand.java | 66 + .../command/container/RemoveBrokerSubCommand.java | 79 + .../tools/command/ha/HAStatusSubCommand.java | 151 ++ .../command/offset/ResetOffsetByTimeCommand.java | 34 + .../tools/command/topic/DeleteTopicSubCommand.java | 2 +- .../topic/RemappingStaticTopicSubCommand.java | 207 +++ .../command/topic/UpdateStaticTopicSubCommand.java | 208 +++ .../tools/command/topic/UpdateTopicSubCommand.java | 14 + .../tools/admin/DefaultMQAdminExtTest.java | 74 +- .../rocketmq/tools/command/CommandUtilTest.java | 2 +- .../consumer/ConsumerProgressSubCommandTest.java | 2 + .../message/QueryMsgByUniqueKeySubCommandTest.java | 18 +- 600 files changed, 52593 insertions(+), 9243 deletions(-) diff --cc broker/src/main/java/org/apache/rocketmq/broker/out/BrokerOuterAPI.java index 503bf0bfa,9bfcc0f21..656e87245 --- a/broker/src/main/java/org/apache/rocketmq/broker/out/BrokerOuterAPI.java +++ b/broker/src/main/java/org/apache/rocketmq/broker/out/BrokerOuterAPI.java @@@ -86,9 -141,9 +141,9 @@@ public class BrokerOuterAPI public String fetchNameServerAddr() { try { String addrs = this.topAddressing.fetchNSAddr(); - if (addrs != null) { + if (!UtilAll.isBlank(addrs)) { if (!addrs.equals(this.nameSrvAddr)) { - log.info("name server address changed, old: {} new: {}", this.nameSrvAddr, addrs); + LOGGER.info("name server address changed, old: {} new: {}", this.nameSrvAddr, addrs); this.updateNameServerAddressList(addrs); this.nameSrvAddr = addrs; return nameSrvAddr; diff --cc pom.xml index f67ae7a00,8eef3bccc..7f14a1d86 --- a/pom.xml +++ b/pom.xml @@@ -119,9 -120,10 +120,10 @@@ <lz4-java.version>1.8.0</lz4-java.version> <opentracing.version>0.33.0</opentracing.version> <jaeger.version>1.6.0</jaeger.version> - <dleger.version>0.2.6</dleger.version> + <dleger.version>0.2.7</dleger.version> <annotations-api.version>6.0.53</annotations-api.version> <extra-enforcer-rules.version>1.0-beta-4</extra-enforcer-rules.version> + <concurrentlinkedhashmap-lru.version>1.4.2</concurrentlinkedhashmap-lru.version> <!-- Test dependencies --> <junit.version>4.13.2</junit.version>
