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

liujun pushed a commit to branch 2.6.x
in repository https://gitbox.apache.org/repos/asf/dubbo.git


The following commit(s) were added to refs/heads/2.6.x by this push:
     new 64d8e36  限流功能动态配置之后不生效 (#7060)
64d8e36 is described below

commit 64d8e36ff313cb253fc32a4d943176d1c78924f8
Author: qingxiangOS <[email protected]>
AuthorDate: Wed Feb 24 00:11:58 2021 +0800

    限流功能动态配置之后不生效 (#7060)
---
 .../java/com/alibaba/dubbo/rpc/filter/tps/DefaultTPSLimiter.java   | 6 ++++++
 .../src/main/java/com/alibaba/dubbo/rpc/filter/tps/StatItem.java   | 7 +++++++
 2 files changed, 13 insertions(+)

diff --git 
a/dubbo-rpc/dubbo-rpc-api/src/main/java/com/alibaba/dubbo/rpc/filter/tps/DefaultTPSLimiter.java
 
b/dubbo-rpc/dubbo-rpc-api/src/main/java/com/alibaba/dubbo/rpc/filter/tps/DefaultTPSLimiter.java
index 03890cb..fe9dd34 100644
--- 
a/dubbo-rpc/dubbo-rpc-api/src/main/java/com/alibaba/dubbo/rpc/filter/tps/DefaultTPSLimiter.java
+++ 
b/dubbo-rpc/dubbo-rpc-api/src/main/java/com/alibaba/dubbo/rpc/filter/tps/DefaultTPSLimiter.java
@@ -40,6 +40,12 @@ public class DefaultTPSLimiter implements TPSLimiter {
                 stats.putIfAbsent(serviceKey,
                         new StatItem(serviceKey, rate, interval));
                 statItem = stats.get(serviceKey);
+            } else {
+                //rate or interval has changed, rebuild
+                if (statItem.getRate() != rate || statItem.getInterval() != 
interval) {
+                    stats.put(serviceKey, new StatItem(serviceKey, rate, 
interval));
+                    statItem = stats.get(serviceKey);
+                }
             }
             return statItem.isAllowable();
         } else {
diff --git 
a/dubbo-rpc/dubbo-rpc-api/src/main/java/com/alibaba/dubbo/rpc/filter/tps/StatItem.java
 
b/dubbo-rpc/dubbo-rpc-api/src/main/java/com/alibaba/dubbo/rpc/filter/tps/StatItem.java
index d3b768f..260a7a7 100644
--- 
a/dubbo-rpc/dubbo-rpc-api/src/main/java/com/alibaba/dubbo/rpc/filter/tps/StatItem.java
+++ 
b/dubbo-rpc/dubbo-rpc-api/src/main/java/com/alibaba/dubbo/rpc/filter/tps/StatItem.java
@@ -72,4 +72,11 @@ class StatItem {
                 .toString();
     }
 
+    public int getRate() {
+        return rate;
+    }
+
+    public long getInterval() {
+        return interval;
+    }
 }

Reply via email to