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

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


The following commit(s) were added to refs/heads/2.8.x by this push:
     new ce3cf0a7c [#4520]ratioCeiling defaults to 100-ratio (#4523)
ce3cf0a7c is described below

commit ce3cf0a7c212d4d8986df4ae7cd41ab5be430e4b
Author: liubao68 <[email protected]>
AuthorDate: Sat Sep 14 17:13:04 2024 +0800

    [#4520]ratioCeiling defaults to 100-ratio (#4523)
---
 .../servicecomb/loadbalance/filterext/ZoneAwareDiscoveryFilter.java | 6 +++---
 .../loadbalance/filterext/TestZoneAwareDiscoveryFilter.java         | 1 +
 2 files changed, 4 insertions(+), 3 deletions(-)

diff --git 
a/handlers/handler-loadbalance/src/main/java/org/apache/servicecomb/loadbalance/filterext/ZoneAwareDiscoveryFilter.java
 
b/handlers/handler-loadbalance/src/main/java/org/apache/servicecomb/loadbalance/filterext/ZoneAwareDiscoveryFilter.java
index fdf621892..93f386835 100644
--- 
a/handlers/handler-loadbalance/src/main/java/org/apache/servicecomb/loadbalance/filterext/ZoneAwareDiscoveryFilter.java
+++ 
b/handlers/handler-loadbalance/src/main/java/org/apache/servicecomb/loadbalance/filterext/ZoneAwareDiscoveryFilter.java
@@ -50,9 +50,9 @@ public class ZoneAwareDiscoveryFilter implements 
ServerListFilterExt {
         .getIntProperty(CONFIG_RATIO, 30).get();
   }
 
-  private int getRatioCeiling() {
+  private int getRatioCeiling(int defaultValue) {
     return DynamicPropertyFactory.getInstance()
-        .getIntProperty(CONFIG_RATIO_CEILING, 70).get();
+        .getIntProperty(CONFIG_RATIO_CEILING, defaultValue).get();
   }
 
   @Override
@@ -74,7 +74,7 @@ public class ZoneAwareDiscoveryFilter implements 
ServerListFilterExt {
     });
 
     int ratio = getRatio();
-    int ratioCeiling = getRatioCeiling();
+    int ratioCeiling = getRatioCeiling(100 - ratio);
 
     if (hasEnoughMembers(servers.size(), instancesRegionAndAZMatch.size(), 
ratio, ratioCeiling)) {
       return instancesRegionAndAZMatch;
diff --git 
a/handlers/handler-loadbalance/src/test/java/org/apache/servicecomb/loadbalance/filterext/TestZoneAwareDiscoveryFilter.java
 
b/handlers/handler-loadbalance/src/test/java/org/apache/servicecomb/loadbalance/filterext/TestZoneAwareDiscoveryFilter.java
index c54589780..18c790b7c 100644
--- 
a/handlers/handler-loadbalance/src/test/java/org/apache/servicecomb/loadbalance/filterext/TestZoneAwareDiscoveryFilter.java
+++ 
b/handlers/handler-loadbalance/src/test/java/org/apache/servicecomb/loadbalance/filterext/TestZoneAwareDiscoveryFilter.java
@@ -50,6 +50,7 @@ public class TestZoneAwareDiscoveryFilter {
   @Test
   public void test_not_enough_instance() {
     ArchaiusUtils.setProperty(ZoneAwareDiscoveryFilter.CONFIG_RATIO, 50);
+    ArchaiusUtils.setProperty(ZoneAwareDiscoveryFilter.CONFIG_RATIO_CEILING, 
70);
     ZoneAwareDiscoveryFilter filter = new ZoneAwareDiscoveryFilter();
 
     // set up data

Reply via email to