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/11/25 06:19:57 UTC
[dubbo] 11/45: improve:解决可能卡顿的问题
This is an automated email from the ASF dual-hosted git repository.
liujun pushed a commit to branch release/3.0.14-rpccontext-bugfix
in repository https://gitbox.apache.org/repos/asf/dubbo.git
commit d89d25e3df5f7cbad4c8d6601c275c11a8a6c10f
Author: 未宇 <li...@alibaba-inc.com>
AuthorDate: Mon Sep 28 15:07:50 2020 +0800
improve:解决可能卡顿的问题
---
compiler/pom.xml | 2 +-
dubbo-build-tools/pom.xml | 2 +-
.../rpc/cluster/support/AbstractClusterInvoker.java | 19 +++++++++++++++----
.../apache/dubbo/config/AbstractInterfaceConfig.java | 10 +++++-----
dubbo-dependencies-bom/pom.xml | 2 +-
.../dubbo-dependencies-zookeeper/pom.xml | 2 +-
pom.xml | 4 ++--
7 files changed, 26 insertions(+), 15 deletions(-)
diff --git a/compiler/pom.xml b/compiler/pom.xml
index 5ec07c7..30309d3 100644
--- a/compiler/pom.xml
+++ b/compiler/pom.xml
@@ -26,7 +26,7 @@
<groupId>org.apache.dubbo</groupId>
<artifactId>dubbo-compiler</artifactId>
- <version>2.7.8-hsf3-4</version>
+ <version>2.7.8-hsf3-5</version>
<packaging>jar</packaging>
diff --git a/dubbo-build-tools/pom.xml b/dubbo-build-tools/pom.xml
index 3e08ebf..cfee28d 100644
--- a/dubbo-build-tools/pom.xml
+++ b/dubbo-build-tools/pom.xml
@@ -20,7 +20,7 @@
<groupId>org.apache.dubbo</groupId>
<artifactId>dubbo-build-tools</artifactId>
- <version>2.7.8-hsf3-4</version>
+ <version>2.7.8-hsf3-5</version>
<packaging>jar</packaging>
<properties>
diff --git a/dubbo-cluster/src/main/java/org/apache/dubbo/rpc/cluster/support/AbstractClusterInvoker.java b/dubbo-cluster/src/main/java/org/apache/dubbo/rpc/cluster/support/AbstractClusterInvoker.java
index b1e8a95..7caaba2 100644
--- a/dubbo-cluster/src/main/java/org/apache/dubbo/rpc/cluster/support/AbstractClusterInvoker.java
+++ b/dubbo-cluster/src/main/java/org/apache/dubbo/rpc/cluster/support/AbstractClusterInvoker.java
@@ -215,19 +215,30 @@ public abstract class AbstractClusterInvoker<T> implements ClusterInvoker<T> {
// First, try picking a invoker not in `selected`.
for (Invoker<T> invoker : invokers) {
- if (availablecheck && !invoker.isAvailable()) {
- continue;
- }
-
if (selected == null || !selected.contains(invoker)) {
reselectInvokers.add(invoker);
}
}
+ if (availablecheck) {
+ int retryCount = 10;
+ if (reselectInvokers.size() < retryCount) {
+ retryCount = reselectInvokers.size();
+ }
+ for (int retry = 0; retry < retryCount; retry++) {
+ Invoker resultInvoker = loadbalance.select(reselectInvokers, getUrl(), invocation);
+ if (resultInvoker != null && resultInvoker.isAvailable()) {
+ return resultInvoker;
+ }
+
+ }
+ }
+
if (!reselectInvokers.isEmpty()) {
return loadbalance.select(reselectInvokers, getUrl(), invocation);
}
+
// Just pick an available invoker using loadbalance policy
if (selected != null) {
for (Invoker<T> invoker : selected) {
diff --git a/dubbo-common/src/main/java/org/apache/dubbo/config/AbstractInterfaceConfig.java b/dubbo-common/src/main/java/org/apache/dubbo/config/AbstractInterfaceConfig.java
index 82b5636..2f27de9 100644
--- a/dubbo-common/src/main/java/org/apache/dubbo/config/AbstractInterfaceConfig.java
+++ b/dubbo-common/src/main/java/org/apache/dubbo/config/AbstractInterfaceConfig.java
@@ -225,11 +225,11 @@ public abstract class AbstractInterfaceConfig extends AbstractMethodConfig {
"<dubbo:method name=\"\" ... /></<dubbo:reference>");
}
- boolean hasMethod = Arrays.stream(interfaceClass.getMethods()).anyMatch(method -> method.getName().equals(methodName));
- if (!hasMethod) {
- throw new IllegalStateException("The interface " + interfaceClass.getName()
- + " not found method " + methodName);
- }
+// boolean hasMethod = Arrays.stream(interfaceClass.getMethods()).anyMatch(method -> method.getName().equals(methodName));
+// if (!hasMethod) {
+// throw new IllegalStateException("The interface " + interfaceClass.getName()
+// + " not found method " + methodName);
+// }
}
}
}
diff --git a/dubbo-dependencies-bom/pom.xml b/dubbo-dependencies-bom/pom.xml
index 5cdb530..d21c464 100644
--- a/dubbo-dependencies-bom/pom.xml
+++ b/dubbo-dependencies-bom/pom.xml
@@ -163,7 +163,7 @@
<mortbay_jetty_version>6.1.26</mortbay_jetty_version>
<portlet_version>2.0</portlet_version>
<maven_flatten_version>1.1.0</maven_flatten_version>
- <revision>2.7.8-hsf3-4</revision>
+ <revision>2.7.8-hsf3-5</revision>
</properties>
<dependencyManagement>
diff --git a/dubbo-dependencies/dubbo-dependencies-zookeeper/pom.xml b/dubbo-dependencies/dubbo-dependencies-zookeeper/pom.xml
index 658ce35..298251f 100644
--- a/dubbo-dependencies/dubbo-dependencies-zookeeper/pom.xml
+++ b/dubbo-dependencies/dubbo-dependencies-zookeeper/pom.xml
@@ -32,7 +32,7 @@
<packaging>pom</packaging>
<properties>
- <revision>2.7.8-hsf3-4</revision>
+ <revision>2.7.8-hsf3-5</revision>
<maven_flatten_version>1.1.0</maven_flatten_version>
</properties>
diff --git a/pom.xml b/pom.xml
index 73153ca..3d2ac4a 100644
--- a/pom.xml
+++ b/pom.xml
@@ -126,7 +126,7 @@
<arguments />
<checkstyle.skip>true</checkstyle.skip>
<rat.skip>true</rat.skip>
- <revision>2.7.8-hsf3-4</revision>
+ <revision>2.7.8-hsf3-5</revision>
</properties>
<modules>
@@ -257,7 +257,7 @@
<dependency>
<groupId>org.apache.dubbo</groupId>
<artifactId>dubbo-build-tools</artifactId>
- <version>2.7.8-hsf3-4</version>
+ <version>2.7.8-hsf3-5</version>
</dependency>
</dependencies>
<executions>