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
The following commit(s) were added to refs/heads/master by this push:
new 540e1e3 [SCB-2315]transport event loop size configurable (#2496)
540e1e3 is described below
commit 540e1e3f76ffa2c37911de0d28bb3e87d05c7649
Author: liubao68 <[email protected]>
AuthorDate: Fri Aug 6 15:42:16 2021 +0800
[SCB-2315]transport event loop size configurable (#2496)
---
.../demo/multiServiceCenterClient/Application.java | 12 ++++++++++++
.../src/main/resources/application.yml | 6 +++++-
.../servicecomb/foundation/vertx/SharedVertxFactory.java | 11 +++++++++++
3 files changed, 28 insertions(+), 1 deletion(-)
diff --git
a/demo/demo-multi-service-center/demo-multi-service-center-client/src/main/java/org/apache/servicecomb/demo/multiServiceCenterClient/Application.java
b/demo/demo-multi-service-center/demo-multi-service-center-client/src/main/java/org/apache/servicecomb/demo/multiServiceCenterClient/Application.java
index a657a70..30e4b5b 100644
---
a/demo/demo-multi-service-center/demo-multi-service-center-client/src/main/java/org/apache/servicecomb/demo/multiServiceCenterClient/Application.java
+++
b/demo/demo-multi-service-center/demo-multi-service-center-client/src/main/java/org/apache/servicecomb/demo/multiServiceCenterClient/Application.java
@@ -44,12 +44,24 @@ public class Application {
public static void runTest() throws Exception {
CategorizedTestCaseRunner.runCategorizedTestCase("demo-multi-service-center-serverA");
testRegistryThreads();
+ testTransportThreads();
TestMgr.summary();
if (!TestMgr.errors().isEmpty()) {
throw new IllegalStateException("tests failed");
}
}
+ private static void testTransportThreads() throws Exception {
+ Set<Thread> threadSet = Thread.getAllStackTraces().keySet();
+ List<String> expectedThread = new ArrayList<>();
+ threadSet.forEach(thread -> {
+ if (thread.getName().contains("transport-")) {
+ expectedThread.add(thread.getName());
+ }
+ });
+ TestMgr.check(6, expectedThread.size());
+ }
+
private static void testRegistryThreads() throws Exception {
Set<Thread> threadSet = Thread.getAllStackTraces().keySet();
List<String> expectedThread = new ArrayList<>();
diff --git
a/demo/demo-multi-service-center/demo-multi-service-center-client/src/main/resources/application.yml
b/demo/demo-multi-service-center/demo-multi-service-center-client/src/main/resources/application.yml
index 6fbd422..4999ed0 100644
---
a/demo/demo-multi-service-center/demo-multi-service-center-client/src/main/resources/application.yml
+++
b/demo/demo-multi-service-center/demo-multi-service-center-client/src/main/resources/application.yml
@@ -30,4 +30,8 @@ servicecomb:
handler:
chain:
Consumer:
- default: loadbalance
\ No newline at end of file
+ default: loadbalance
+
+ transport:
+ eventloop:
+ size: 6
\ No newline at end of file
diff --git
a/foundations/foundation-vertx/src/main/java/org/apache/servicecomb/foundation/vertx/SharedVertxFactory.java
b/foundations/foundation-vertx/src/main/java/org/apache/servicecomb/foundation/vertx/SharedVertxFactory.java
index 7d45890..5e35641 100644
---
a/foundations/foundation-vertx/src/main/java/org/apache/servicecomb/foundation/vertx/SharedVertxFactory.java
+++
b/foundations/foundation-vertx/src/main/java/org/apache/servicecomb/foundation/vertx/SharedVertxFactory.java
@@ -19,6 +19,8 @@ package org.apache.servicecomb.foundation.vertx;
import
org.apache.servicecomb.foundation.vertx.metrics.DefaultVertxMetricsFactory;
import org.apache.servicecomb.foundation.vertx.metrics.MetricsOptionsEx;
+import com.netflix.config.DynamicPropertyFactory;
+
import io.vertx.core.Vertx;
import io.vertx.core.VertxOptions;
import io.vertx.core.shareddata.Shareable;
@@ -33,6 +35,15 @@ public class SharedVertxFactory {
public SharedVertxInfo() {
vertxOptions.setMetricsOptions(metricsOptionsEx);
+
vertxOptions.setEventLoopPoolSize(readEventLoopPoolSize("servicecomb.transport.eventloop.size"));
+ }
+
+ private static int readEventLoopPoolSize(String key) {
+ int count = DynamicPropertyFactory.getInstance().getIntProperty(key,
-1).get();
+ if (count > 0) {
+ return count;
+ }
+ return VertxOptions.DEFAULT_EVENT_LOOP_POOL_SIZE;
}
}