[ https://issues.apache.org/jira/browse/SCB-651?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16512389#comment-16512389 ]
ASF GitHub Bot commented on SCB-651: ------------------------------------ liubao68 commented on a change in pull request #770: [SCB-651] Fixes bug of qps rate limit value URL: https://github.com/apache/incubator-servicecomb-java-chassis/pull/770#discussion_r195400342 ########## File path: handlers/handler-flowcontrol-qps/src/main/java/org/apache/servicecomb/qps/QpsController.java ########## @@ -57,6 +60,11 @@ public void setQpsLimit(Integer qpsLimit) { public boolean isLimitNewRequest() { long newCount = requestCount.incrementAndGet(); long msNow = System.currentTimeMillis(); + if (firstCycle) { Review comment: Change lastRequestCount to 1 is preferred. Thanks ---------------------------------------------------------------- This is an automated message from the Apache Git Service. To respond to the message, please log on GitHub and use the URL above to go to the specific comment. For queries about this service, please contact Infrastructure at: us...@infra.apache.org > QPS rate limit bug > ------------------ > > Key: SCB-651 > URL: https://issues.apache.org/jira/browse/SCB-651 > Project: Apache ServiceComb > Issue Type: Bug > Components: Java-Chassis > Affects Versions: java-chassis-1.0.0-m1 > Reporter: Sean Li > Assignee: Sean Li > Priority: Major > Attachments: limit value as 1.jpeg, limit value as 2.jpeg > > > When setting _servicecomb.flowcontrol.Provider.qps.limit.[ServiceName]_, the > actual number of requests allowed per second are 1 less than the limit value. > > For example, if I set _flowcontrol.Provider.qps.limit._ > _business-service-consumer_ as 1, I'll get NO successful request at the very > beginning, although I would expect 1 successful request instead of none. > Similarly, if I set _flowcontrol.Provider.qps.limit._ > _business-service-consumer_ as 2, I'll get 1 successful request instead of > 2. > > -However, if I pause before sending requests, for example add > _Thread.sleep(100)_ before invoking the first request, the number of requests > allowed per second will be correct this time. (i.e. 1 successful request when > limit value is 1, 2 successful requests when limit value is 2, etc.)- > -- This message was sent by Atlassian JIRA (v7.6.3#76005)