You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@dubbo.apache.org by li...@apache.org on 2021/02/23 16:12:17 UTC

[dubbo] branch 2.6.x updated: 限流功能动态配置之后不生效 (#7060)

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 <50...@users.noreply.github.com>
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;
+    }
 }