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

liubao pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/servicecomb-java-chassis.git

commit 9382d3c344b7f6b62f37f9d8e1faaa9b5812e89e
Author: zyl <[email protected]>
AuthorDate: Tue Jan 12 17:08:18 2021 +0800

    SCB-2178 Improve algorithm of loadBalance strage WeightedResponse
    #之前使用的策略是会一直累积计算平均响应时间,会导致出现影响速度较慢。
    #通过使用时间窗口来计算平均响应时间,可以提高响应的敏感度。
---
 .../apache/servicecomb/loadbalance/WeightedResponseTimeRuleExt.java    | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git 
a/handlers/handler-loadbalance/src/main/java/org/apache/servicecomb/loadbalance/WeightedResponseTimeRuleExt.java
 
b/handlers/handler-loadbalance/src/main/java/org/apache/servicecomb/loadbalance/WeightedResponseTimeRuleExt.java
index 055f75b..d96f6d4 100644
--- 
a/handlers/handler-loadbalance/src/main/java/org/apache/servicecomb/loadbalance/WeightedResponseTimeRuleExt.java
+++ 
b/handlers/handler-loadbalance/src/main/java/org/apache/servicecomb/loadbalance/WeightedResponseTimeRuleExt.java
@@ -83,7 +83,8 @@ public class WeightedResponseTimeRuleExt extends 
RoundRobinRuleExt {
     boolean needRandom = false;
     for (ServiceCombServer server : servers) {
       ServerStats serverStats = 
loadBalancer.getLoadBalancerStats().getSingleServerStat(server);
-      double avgTime = serverStats.getResponseTimeAvg();
+      //getResponseTimeAvgRecent()按照时间窗口统计,时间窗口大小为1分钟;getResponseTimeAvg()一直累积
+      double avgTime = serverStats.getResponseTimeAvgRecent();
       if (!needRandom && avgTime > MIN_GAP) {
         needRandom = true;
       }

Reply via email to