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

albumenj pushed a commit to branch 3.1
in repository https://gitbox.apache.org/repos/asf/dubbo.git


The following commit(s) were added to refs/heads/3.1 by this push:
     new bed11378ae Update Readiness probe (#10423)
bed11378ae is described below

commit bed11378ae355af2b7ff76db0aedd9f9ee29c18e
Author: Albumen Kevin <[email protected]>
AuthorDate: Tue Aug 9 13:04:11 2022 +0800

    Update Readiness probe (#10423)
---
 .../dubbo/qos/probe/impl/ProviderReadinessProbe.java   | 18 +++++++++---------
 1 file changed, 9 insertions(+), 9 deletions(-)

diff --git 
a/dubbo-plugin/dubbo-qos/src/main/java/org/apache/dubbo/qos/probe/impl/ProviderReadinessProbe.java
 
b/dubbo-plugin/dubbo-qos/src/main/java/org/apache/dubbo/qos/probe/impl/ProviderReadinessProbe.java
index 306c35c4b6..9c3ce32453 100644
--- 
a/dubbo-plugin/dubbo-qos/src/main/java/org/apache/dubbo/qos/probe/impl/ProviderReadinessProbe.java
+++ 
b/dubbo-plugin/dubbo-qos/src/main/java/org/apache/dubbo/qos/probe/impl/ProviderReadinessProbe.java
@@ -23,7 +23,6 @@ import org.apache.dubbo.rpc.model.FrameworkServiceRepository;
 import org.apache.dubbo.rpc.model.ProviderModel;
 
 import java.util.Collection;
-import java.util.List;
 
 @Activate
 public class ProviderReadinessProbe implements ReadinessProbe {
@@ -46,17 +45,18 @@ public class ProviderReadinessProbe implements 
ReadinessProbe {
             return true;
         }
 
-        boolean hasService = false;
+        boolean hasService = false, anyOnline = false;
         for (ProviderModel providerModel : providerModelList) {
-            List<ProviderModel.RegisterStatedURL> statedUrls = 
providerModel.getStatedUrl();
-            for (ProviderModel.RegisterStatedURL statedUrl : statedUrls) {
-                if (statedUrl.isRegistered()) {
-                    hasService = true;
-                    break;
-                }
+            if (providerModel.getModuleModel().isInternal()) {
+                continue;
             }
+            hasService = true;
+            anyOnline = anyOnline || 
providerModel.getStatedUrl().stream().anyMatch(ProviderModel.RegisterStatedURL::isRegistered);
         }
 
-        return hasService;
+        // no service => check pass
+        // has service and any online => check pass
+        // has service and none online => check fail
+        return !(hasService && !anyOnline);
     }
 }

Reply via email to