[ 
https://issues.apache.org/jira/browse/ROCKETMQ-294?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16178940#comment-16178940
 ] 

ASF GitHub Bot commented on ROCKETMQ-294:
-----------------------------------------

GitHub user zhouxinyu opened a pull request:

    https://github.com/apache/incubator-rocketmq/pull/171

    [ROCKETMQ-294] Do flow control on the number and size dimensions when pull 
message

    ## What is the purpose of the change
    Current flow control strategy only support on Queue level, each message 
queue can cache 1000 message by default.
    
    When lots of message queue are assigned to one consumer instance, the 
consumer will cache too many messages, may cause OOM exception.
    
    On the other hand, only control the message amount is not enough, should 
support do flow control on the number and size dimensions, on Topic and Queue 
level.
    
    ## Brief changelog
    
    Do flow control on the number and size dimensions when pulling message
    
    ## Verifying this change
    
    This PR added three parameters, plus the old one, there are 4 parameters 
for flow control:
    
    * pullThresholdForQueue, flow control threshold on queue level, each 
message queue will cache at most 1000 messages by default.
    * pullThresholdForTopic, flow control threshold on topic level, default 
value is -1(Unlimited)
    * pullThresholdSizeForQueue, limit the cached message size on queue level, 
each message queue will cache at most 100 MiB messages by default.
    * pullThresholdSizeForTopic, limit the cached message size on topic level, 
the default value is -1 MiB(Unlimited).
    
    See the javadoc for details, you can change the value, and observe the log 
to ensure it works.
    
    Follow this checklist to help us incorporate your contribution quickly and 
easily:
    
    - [x] Make sure there is a [JIRA 
issue](https://issues.apache.org/jira/browse/ROCKETMQ-294) filed for the change 
(usually before you start working on it). Trivial changes like typos do not 
require a JIRA issue. Your pull request should address just this issue, without 
pulling in other changes - one PR resolves one issue. 
    - [x] Format the pull request title like `[ROCKETMQ-XXX] Fix 
UnknownException when host config not exist`. Each commit in the pull request 
should have a meaningful subject line and body.
    - [x] Write a pull request description that is detailed enough to 
understand what the pull request does, how, and why.
    - [x] Write necessary unit-test to verify your logic correction, more mock 
a little better when cross module dependency exist. If the new feature or 
significant change is committed, please remember to add integration-test in 
[test module](https://github.com/apache/incubator-rocketmq/tree/master/test).
    - [x] Run `mvn -B clean apache-rat:check findbugs:findbugs 
checkstyle:checkstyle` to make sure basic checks pass. Run `mvn clean install 
-DskipITs` to make sure unit-test pass. Run `mvn clean test-compile 
failsafe:integration-test`  to make sure integration-test pass.
    - [x] If this contribution is large, please file an [Apache Individual 
Contributor License Agreement](http://www.apache.org/licenses/#clas).


You can merge this pull request into a Git repository by running:

    $ git pull https://github.com/zhouxinyu/incubator-rocketmq ROCKETMQ-294

Alternatively you can review and apply these changes as the patch at:

    https://github.com/apache/incubator-rocketmq/pull/171.patch

To close this pull request, make a commit to your master/trunk branch
with (at least) the following in the commit message:

    This closes #171
    
----
commit 8878a21e2d0a87ac0d1ae59483eabcc34fdafb07
Author: yukon <[email protected]>
Date:   2017-09-25T07:55:55Z

    [ROCKETMQ-294] Do flow control on the number and size dimensions when pull 
message

----


> Do flow control on the number and size dimensions when pull message
> -------------------------------------------------------------------
>
>                 Key: ROCKETMQ-294
>                 URL: https://issues.apache.org/jira/browse/ROCKETMQ-294
>             Project: Apache RocketMQ
>          Issue Type: Improvement
>          Components: rocketmq-client
>            Reporter: yukon
>            Assignee: yukon
>             Fix For: 4.2.0-incubating
>
>
> *Motivations*
> Current flow control strategy only support on Queue level, each message queue 
> can cache 1000 message by default. 
> When lots of message queue are assigned to one consumer instance, the 
> consumer will cache too many messages, may cause OOM exception.
> On the other hand, only control the message amount is not enough, should 
> support do flow control on the number and size dimensions, on Topic and Queue 
> level.



--
This message was sent by Atlassian JIRA
(v6.4.14#64029)

Reply via email to