You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@rocketmq.apache.org by du...@apache.org on 2021/06/29 07:36:01 UTC

[rocketmq] 01/01: Merge pull request #2867 from apache/pop_consumer

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

duhengforever pushed a commit to branch 5.0.0-preview
in repository https://gitbox.apache.org/repos/asf/rocketmq.git

commit efe598db98ad3ad328cbd3804da83715ac4ab2b7
Merge: df1d93f 48fa70b
Author: Heng Du <du...@apache.org>
AuthorDate: Tue Jun 29 15:34:16 2021 +0800

    Merge pull request #2867 from apache/pop_consumer
    
    [RIP-19] Server-side rebalance,  lightweight consumer client support

 broker/pom.xml                                     |   4 +
 .../apache/rocketmq/broker/BrokerController.java   | 154 +++-
 .../rocketmq/broker/BrokerPathConfigHelper.java    |   8 +
 .../broker/loadbalance/AssignmentManager.java      | 149 ++++
 .../loadbalance/MessageRequestModeManager.java     |  99 +++
 .../longpolling/NotifyMessageArrivingListener.java |   9 +-
 .../rocketmq/broker/longpolling/PopRequest.java    |  87 ++
 .../broker/offset/ConsumerOrderInfoManager.java    | 426 +++++++++
 .../apache/rocketmq/broker/out/BrokerOuterAPI.java |  42 +-
 .../broker/processor/AckMessageProcessor.java      | 188 ++++
 .../processor/ChangeInvisibleTimeProcessor.java    | 195 +++++
 .../broker/processor/PopBufferMergeService.java    | 731 ++++++++++++++++
 .../broker/processor/PopMessageProcessor.java      | 967 +++++++++++++++++++++
 .../broker/processor/PopReviveService.java         | 470 ++++++++++
 .../broker/processor/QueryAssignmentProcessor.java | 307 +++++++
 .../org/apache/rocketmq/broker/util/MsgUtil.java   |  34 +-
 .../broker/processor/AckMessageProcessorTest.java  | 132 +++
 .../ChangeInvisibleTimeProcessorTest.java          | 133 +++
 .../processor/PopBufferMergeServiceTest.java       | 124 +++
 .../broker/processor/PopMessageProcessorTest.java  | 191 ++++
 .../processor/QueryAssignmentProcessorTest.java    | 153 ++++
 .../rocketmq/client/consumer/AckCallback.java      |  22 +-
 .../apache/rocketmq/client/consumer/AckResult.java |  38 +-
 .../apache/rocketmq/client/consumer/AckStatus.java |  29 +-
 .../client/consumer/DefaultMQPushConsumer.java     |  51 ++
 .../rocketmq/client/consumer/PopCallback.java      |  25 +-
 .../apache/rocketmq/client/consumer/PopResult.java |  82 ++
 .../apache/rocketmq/client/consumer/PopStatus.java |  38 +-
 .../rebalance/AllocateMessageQueueAveragely.java   |  12 +-
 .../AllocateMessageQueueAveragelyByCircle.java     |  12 +-
 .../rocketmq/client/impl/BaseInvokeCallback.java   |  23 +-
 .../rocketmq/client/impl/MQClientAPIImpl.java      | 286 +++++-
 .../ConsumeMessageConcurrentlyService.java         |   8 +-
 .../consumer/ConsumeMessageOrderlyService.java     |  14 +-
 ...a => ConsumeMessagePopConcurrentlyService.java} | 265 +++---
 .../consumer/ConsumeMessagePopOrderlyService.java  | 408 +++++++++
 .../impl/consumer/ConsumeMessageService.java       |   5 +
 .../impl/consumer/DefaultLitePullConsumerImpl.java |   8 +-
 .../impl/consumer/DefaultMQPushConsumerImpl.java   | 331 ++++++-
 .../client/impl/consumer/MessageQueueLock.java     |  29 +-
 ...sumeMessageService.java => MessageRequest.java} |  27 +-
 .../client/impl/consumer/PopProcessQueue.java      |  84 ++
 .../consumer/{PullRequest.java => PopRequest.java} |  71 +-
 .../client/impl/consumer/PullAPIWrapper.java       |  55 +-
 .../client/impl/consumer/PullMessageService.java   |  47 +-
 .../rocketmq/client/impl/consumer/PullRequest.java |   8 +-
 .../client/impl/consumer/RebalanceImpl.java        | 482 ++++++++--
 .../impl/consumer/RebalanceLitePullImpl.java       |  25 +-
 .../client/impl/consumer/RebalancePullImpl.java    |  26 +-
 .../client/impl/consumer/RebalancePushImpl.java    |  56 +-
 .../client/impl/factory/MQClientInstance.java      |  37 +-
 .../consumer/DefaultLitePullConsumerTest.java      |   8 +
 .../client/consumer/DefaultMQPushConsumerTest.java | 121 ++-
 .../rocketmq/client/impl/MQClientAPIImplTest.java  | 490 ++++++++++-
 .../consumer/DefaultMQPushConsumerImplTest.java    |  69 ++
 .../impl/consumer/RebalancePushImplTest.java       |  53 +-
 .../client/impl/factory/MQClientInstanceTest.java  |   1 +
 .../client/producer/DefaultMQProducerTest.java     |   5 +-
 .../powermock/extensions/configuration.properties  |  16 +
 .../org/apache/rocketmq/common/BrokerConfig.java   | 154 ++++
 .../org/apache/rocketmq/common/KeyBuilder.java     |  28 +-
 .../apache/rocketmq/common/PopAckConstants.java    |  28 +-
 .../rocketmq/common/constant/ConsumeInitMode.java  |  23 +-
 .../rocketmq/common/constant/LoggerName.java       |   1 +
 .../rocketmq/common/message/MessageConst.java      |   4 +
 .../rocketmq/common/message/MessageDecoder.java    |   2 +-
 .../common/message/MessageQueueAssignment.java     |  83 ++
 .../common/message/MessageRequestMode.java         |  30 +-
 .../rocketmq/common/protocol/RequestCode.java      |   7 +
 .../rocketmq/common/protocol/ResponseCode.java     |   3 +
 .../common/protocol/body/ConsumerRunningInfo.java  |  32 +
 .../common/protocol/body/PopProcessQueueInfo.java  |  59 ++
 .../protocol/body/QueryAssignmentRequestBody.java  |  74 ++
 .../protocol/body/QueryAssignmentResponseBody.java |  23 +-
 .../body/SetMessageRequestModeRequestBody.java     |  70 ++
 .../protocol/header/AckMessageRequestHeader.java   |  85 ++
 .../header/ChangeInvisibleTimeRequestHeader.java   |  97 +++
 .../header/ChangeInvisibleTimeResponseHeader.java  |  61 ++
 .../common/protocol/header/ExtraInfoUtil.java      | 258 ++++++
 .../protocol/header/PopMessageRequestHeader.java   | 155 ++++
 .../protocol/header/PopMessageResponseHeader.java  | 102 +++
 .../rocketmq/common/utils/DataConverter.java       |  31 +-
 distribution/conf/logback_broker.xml               |  29 +
 docs/en/Feature.md                                 |   7 +-
 example/pom.xml                                    |   4 +
 .../rocketmq/example/simple/PopPushConsumer.java   |  62 ++
 pom.xml                                            |   5 +
 .../rocketmq/remoting/common/RemotingHelper.java   |   9 +-
 .../apache/rocketmq/store/DefaultMessageStore.java |   3 +-
 .../apache/rocketmq/store/GetMessageResult.java    |  10 +
 .../org/apache/rocketmq/store/MessageStore.java    |   4 +-
 .../java/org/apache/rocketmq/store/pop/AckMsg.java |  87 ++
 .../apache/rocketmq/store/pop/PopCheckPoint.java   | 174 ++++
 .../store/schedule/ScheduleMessageService.java     |  20 +-
 .../rocketmq/test/client/rmq/RMQPopConsumer.java   |  33 +
 .../rocketmq/test/factory/ConsumerFactory.java     |  10 +
 .../rocketmq/test/base/IntegrationTestBase.java    |  13 +-
 .../consumer/balance/NormalMsgStaticBalanceIT.java |  18 +-
 .../test/client/consumer/pop/PopSubCheckIT.java    |  92 ++
 .../test/smoke/NormalMessageSendAndRecvIT.java     |   6 +
 .../rocketmq/tools/admin/DefaultMQAdminExt.java    |  15 +-
 .../tools/admin/DefaultMQAdminExtImpl.java         |  20 +-
 .../apache/rocketmq/tools/admin/MQAdminExt.java    |  30 +-
 .../rocketmq/tools/command/MQAdminStartup.java     |   4 +-
 .../command/consumer/SetConsumeModeSubCommand.java | 135 +++
 105 files changed, 9560 insertions(+), 610 deletions(-)