supercym opened a new issue, #82:
URL: https://github.com/apache/rocketmq-eventbridge/issues/82

   **Problem Description**
   The current message pull logic of rocketMQEventSubscriber has the following 
problems:
   
   1. Consumer pull is bound to commit, which affects pull efficiency
   2. The pull mode of the consumer will cause certain performance pressure on 
the rocketmq broker when there is no message on the broker.
   
   **Solution**
   Implement a LitePullConsumer, the change after implementation are:
   
   1. LitePullConsumer has a built-in cache queue to decouple poll and commit;
   2. Message pull is implemented using pullBlockIfNotFound + PullCallback;
       - 2.1 pullBlockIfNotFound uses the long polling mode to avoid frequent 
pulls when there is no message on the MQ server which resulting in an increase 
in server load;
       - 2.2 However, only using the long polling method will also bring 
certain problems, that is, when the number of MQ topic queues is greater than 
the number of pulling threads and all threads are long polling on the server 
side, some queues will be starved;
       - 2.3 So the callback is used here to submit the next pull request of 
this queue when dealing response of each pull request.
   3. Added configuration to support aliyun Rocketmq.
   4. Implementation on native pullConsumer implementation, based on the fact 
that not all versions and environments of rocketmq support LitePullConsumer.
   


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]

Reply via email to