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);
}
}