You are viewing a plain text version of this content. The canonical link for it is here.
Posted to notifications@shenyu.apache.org by li...@apache.org on 2023/05/08 06:14:29 UTC
[shenyu] branch master updated: fix warmup time (#4619)
This is an automated email from the ASF dual-hosted git repository.
likeguo pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/shenyu.git
The following commit(s) were added to refs/heads/master by this push:
new 2f090ffa9 fix warmup time (#4619)
2f090ffa9 is described below
commit 2f090ffa9ce5fa4b0efb87173a2bb461e57fc096
Author: dragon-zhang <zh...@apache.org>
AuthorDate: Mon May 8 14:14:24 2023 +0800
fix warmup time (#4619)
* fix warmup time
* fix test bug
---
.../shenyu/admin/utils/CommonUpstreamUtils.java | 74 ++++++++++++++++------
.../ShenyuClientRegisterDubboServiceImplTest.java | 8 +--
...enyuClientRegisterWebSocketServiceImplTest.java | 4 +-
.../apache/shenyu/common/constant/Constants.java | 5 ++
.../ShenyuSpringCloudServiceChooser.java | 3 +-
5 files changed, 69 insertions(+), 25 deletions(-)
diff --git a/shenyu-admin/src/main/java/org/apache/shenyu/admin/utils/CommonUpstreamUtils.java b/shenyu-admin/src/main/java/org/apache/shenyu/admin/utils/CommonUpstreamUtils.java
index 6dd874a42..c37d86216 100644
--- a/shenyu-admin/src/main/java/org/apache/shenyu/admin/utils/CommonUpstreamUtils.java
+++ b/shenyu-admin/src/main/java/org/apache/shenyu/admin/utils/CommonUpstreamUtils.java
@@ -18,6 +18,7 @@
package org.apache.shenyu.admin.utils;
import org.apache.commons.lang3.StringUtils;
+import org.apache.shenyu.common.constant.Constants;
import org.apache.shenyu.common.dto.convert.selector.CommonUpstream;
import org.apache.shenyu.common.dto.convert.selector.DivideUpstream;
import org.apache.shenyu.common.dto.convert.selector.DubboUpstream;
@@ -46,8 +47,12 @@ public class CommonUpstreamUtils {
* @return the divide upstream
*/
public static DivideUpstream buildDefaultDivideUpstream(final String host, final Integer port) {
- return DivideUpstream.builder().upstreamHost(LOCALHOST).protocol("http://").upstreamUrl(buildUrl(host, port)).weight(50).warmup(10).timestamp(System.currentTimeMillis())
- .status(Objects.nonNull(port) && StringUtils.isNotBlank(host)).build();
+ return DivideUpstream.builder().upstreamHost(LOCALHOST)
+ .protocol("http://").upstreamUrl(buildUrl(host, port))
+ .weight(50).warmup(Constants.WARMUP_TIME)
+ .timestamp(System.currentTimeMillis())
+ .status(Objects.nonNull(port) && StringUtils.isNotBlank(host))
+ .build();
}
/**
@@ -57,7 +62,10 @@ public class CommonUpstreamUtils {
* @return the divide upstream
*/
public static DivideUpstream buildDefaultAliveDivideUpstream(final String upstreamUrl) {
- return DivideUpstream.builder().upstreamHost(LOCALHOST).protocol("http://").upstreamUrl(upstreamUrl).weight(50).warmup(10).timestamp(System.currentTimeMillis()).build();
+ return DivideUpstream.builder().upstreamHost(LOCALHOST)
+ .protocol("http://").upstreamUrl(upstreamUrl)
+ .weight(50).warmup(Constants.WARMUP_TIME)
+ .timestamp(System.currentTimeMillis()).build();
}
/**
@@ -69,8 +77,12 @@ public class CommonUpstreamUtils {
* @return the divide upstream
*/
public static DivideUpstream buildDivideUpstream(final String protocol, final String host, final Integer port) {
- return DivideUpstream.builder().upstreamHost(LOCALHOST).protocol(protocol).upstreamUrl(buildUrl(host, port)).weight(50).warmup(10).timestamp(System.currentTimeMillis())
- .status(Objects.nonNull(port) && StringUtils.isNotBlank(host)).build();
+ return DivideUpstream.builder().upstreamHost(LOCALHOST)
+ .protocol(protocol).upstreamUrl(buildUrl(host, port))
+ .weight(50).warmup(Constants.WARMUP_TIME)
+ .timestamp(System.currentTimeMillis())
+ .status(Objects.nonNull(port) && StringUtils.isNotBlank(host))
+ .build();
}
/**
@@ -81,7 +93,10 @@ public class CommonUpstreamUtils {
* @return the divide upstream
*/
public static DivideUpstream buildAliveDivideUpstream(final String protocol, final String upstreamUrl) {
- return DivideUpstream.builder().upstreamHost(LOCALHOST).protocol(protocol).upstreamUrl(upstreamUrl).weight(50).warmup(10).timestamp(System.currentTimeMillis()).build();
+ return DivideUpstream.builder().upstreamHost(LOCALHOST)
+ .protocol(protocol).upstreamUrl(upstreamUrl)
+ .weight(50).warmup(Constants.WARMUP_TIME)
+ .timestamp(System.currentTimeMillis()).build();
}
/**
@@ -93,8 +108,12 @@ public class CommonUpstreamUtils {
* @return the websocket upstream
*/
public static WebSocketUpstream buildWebSocketUpstream(final String protocol, final String host, final Integer port) {
- return WebSocketUpstream.builder().host(LOCALHOST).protocol(protocol).upstreamUrl(buildUrl(host, port)).weight(50).warmup(10).timestamp(System.currentTimeMillis())
- .status(Objects.nonNull(port) && StringUtils.isNotBlank(host)).build();
+ return WebSocketUpstream.builder().host(LOCALHOST).protocol(protocol)
+ .upstreamUrl(buildUrl(host, port)).weight(50)
+ .warmup(Constants.WARMUP_TIME)
+ .timestamp(System.currentTimeMillis())
+ .status(Objects.nonNull(port) && StringUtils.isNotBlank(host))
+ .build();
}
/**
@@ -105,8 +124,12 @@ public class CommonUpstreamUtils {
* @return the dubbo upstream
*/
public static DubboUpstream buildDefaultDubboUpstream(final String host, final Integer port) {
- return DubboUpstream.builder().upstreamHost(LOCALHOST).protocol("dubbo://").upstreamUrl(buildUrl(host, port)).weight(50).warmup(10).timestamp(System.currentTimeMillis())
- .status(Objects.nonNull(port) && StringUtils.isNotBlank(host)).build();
+ return DubboUpstream.builder().upstreamHost(LOCALHOST)
+ .protocol("dubbo://").upstreamUrl(buildUrl(host, port))
+ .weight(50).warmup(Constants.WARMUP_TIME)
+ .timestamp(System.currentTimeMillis())
+ .status(Objects.nonNull(port) && StringUtils.isNotBlank(host))
+ .build();
}
/**
@@ -116,7 +139,11 @@ public class CommonUpstreamUtils {
* @return the dubbo upstream
*/
public static DubboUpstream buildAliveDubboUpstream(final String upstreamUrl) {
- return DubboUpstream.builder().upstreamHost(LOCALHOST).protocol("dubbo://").upstreamUrl(upstreamUrl).weight(50).warmup(10).timestamp(System.currentTimeMillis()).build();
+ return DubboUpstream.builder().upstreamHost(LOCALHOST)
+ .protocol("dubbo://").upstreamUrl(upstreamUrl).weight(50)
+ .warmup(Constants.WARMUP_TIME)
+ .timestamp(System.currentTimeMillis())
+ .build();
}
/**
@@ -127,8 +154,10 @@ public class CommonUpstreamUtils {
* @return the grpc upstream
*/
public static GrpcUpstream buildDefaultGrpcUpstream(final String host, final Integer port) {
- return GrpcUpstream.builder().upstreamUrl(buildUrl(host, port)).weight(50).timestamp(System.currentTimeMillis())
- .status(Objects.nonNull(port) && StringUtils.isNotBlank(host)).build();
+ return GrpcUpstream.builder().upstreamUrl(buildUrl(host, port))
+ .weight(50).timestamp(System.currentTimeMillis())
+ .status(Objects.nonNull(port) && StringUtils.isNotBlank(host))
+ .build();
}
/**
@@ -138,7 +167,8 @@ public class CommonUpstreamUtils {
* @return the grpc upstream
*/
public static GrpcUpstream buildAliveGrpcUpstream(final String upstreamUrl) {
- return GrpcUpstream.builder().upstreamUrl(upstreamUrl).weight(50).timestamp(System.currentTimeMillis()).build();
+ return GrpcUpstream.builder().upstreamUrl(upstreamUrl).weight(50)
+ .timestamp(System.currentTimeMillis()).build();
}
/**
@@ -149,8 +179,11 @@ public class CommonUpstreamUtils {
* @return the tars upstream
*/
public static TarsUpstream buildDefaultTarsUpstream(final String host, final Integer port) {
- return TarsUpstream.builder().upstreamUrl(buildUrl(host, port)).weight(50).warmup(10).timestamp(System.currentTimeMillis())
- .status(Objects.nonNull(port) && StringUtils.isNotBlank(host)).build();
+ return TarsUpstream.builder().upstreamUrl(buildUrl(host, port))
+ .weight(50).warmup(Constants.WARMUP_TIME)
+ .timestamp(System.currentTimeMillis())
+ .status(Objects.nonNull(port) && StringUtils.isNotBlank(host))
+ .build();
}
/**
@@ -160,7 +193,10 @@ public class CommonUpstreamUtils {
* @return the tars upstream
*/
public static TarsUpstream buildAliveTarsUpstream(final String upstreamUrl) {
- return TarsUpstream.builder().upstreamUrl(upstreamUrl).weight(50).warmup(10).timestamp(System.currentTimeMillis()).build();
+ return TarsUpstream.builder().upstreamUrl(upstreamUrl).weight(50)
+ .warmup(Constants.WARMUP_TIME)
+ .timestamp(System.currentTimeMillis())
+ .build();
}
/**
@@ -173,7 +209,9 @@ public class CommonUpstreamUtils {
return Optional.ofNullable(upstreamList)
.orElse(Collections.emptyList())
.stream()
- .map(upstream -> new CommonUpstream(upstream.getProtocol(), upstream.getUpstreamHost(), upstream.getUpstreamUrl(), upstream.isStatus(), upstream.getTimestamp()))
+ .map(upstream -> new CommonUpstream(upstream.getProtocol(),
+ upstream.getUpstreamHost(), upstream.getUpstreamUrl(),
+ upstream.isStatus(), upstream.getTimestamp()))
.collect(Collectors.toList());
}
diff --git a/shenyu-admin/src/test/java/org/apache/shenyu/admin/service/register/ShenyuClientRegisterDubboServiceImplTest.java b/shenyu-admin/src/test/java/org/apache/shenyu/admin/service/register/ShenyuClientRegisterDubboServiceImplTest.java
index f21e149ce..67aedcb50 100644
--- a/shenyu-admin/src/test/java/org/apache/shenyu/admin/service/register/ShenyuClientRegisterDubboServiceImplTest.java
+++ b/shenyu-admin/src/test/java/org/apache/shenyu/admin/service/register/ShenyuClientRegisterDubboServiceImplTest.java
@@ -105,10 +105,10 @@ public final class ShenyuClientRegisterDubboServiceImplTest {
public void testBuildHandle() {
shenyuClientRegisterDubboService = spy(shenyuClientRegisterDubboService);
- final String returnStr = "[{protocol:'dubbo://',upstreamHost:'localhost',upstreamUrl:'localhost:8090',warmup:10,weight:50,status:true,timestamp:1637826588267},"
- + "{protocol:'dubbo://',upstreamHost:'localhost',upstreamUrl:'localhost:8091',warmup:10,weight:50,status:false,timestamp:" + (System.currentTimeMillis() + 60000) + "}]";
- final String expected = "[{\"port\":0,\"weight\":50,\"warmup\":10,\"protocol\":\"dubbo://\",\"upstreamHost\":\"localhost\",\"upstreamUrl\":\"localhost:8090\","
- + "\"status\":true,\"timestamp\":1637826588267},{\"port\":0,\"weight\":50,\"warmup\":10,\"protocol\":\"dubbo://\",\"upstreamHost\":\"localhost\","
+ final String returnStr = "[{protocol:'dubbo://',upstreamHost:'localhost',upstreamUrl:'localhost:8090',warmup:600000,weight:50,status:true,timestamp:1637826588267},"
+ + "{protocol:'dubbo://',upstreamHost:'localhost',upstreamUrl:'localhost:8091',warmup:600000,weight:50,status:false,timestamp:" + (System.currentTimeMillis() + 60000) + "}]";
+ final String expected = "[{\"port\":0,\"weight\":50,\"warmup\":600000,\"protocol\":\"dubbo://\",\"upstreamHost\":\"localhost\",\"upstreamUrl\":\"localhost:8090\","
+ + "\"status\":true,\"timestamp\":1637826588267},{\"port\":0,\"weight\":50,\"warmup\":600000,\"protocol\":\"dubbo://\",\"upstreamHost\":\"localhost\","
+ "\"upstreamUrl\":\"localhost:8091\",\"status\":false,\"timestamp\":1637826588267}]";
List<URIRegisterDTO> list = new ArrayList<>();
diff --git a/shenyu-admin/src/test/java/org/apache/shenyu/admin/service/register/ShenyuClientRegisterWebSocketServiceImplTest.java b/shenyu-admin/src/test/java/org/apache/shenyu/admin/service/register/ShenyuClientRegisterWebSocketServiceImplTest.java
index 0a1ed5a18..21f0935ec 100644
--- a/shenyu-admin/src/test/java/org/apache/shenyu/admin/service/register/ShenyuClientRegisterWebSocketServiceImplTest.java
+++ b/shenyu-admin/src/test/java/org/apache/shenyu/admin/service/register/ShenyuClientRegisterWebSocketServiceImplTest.java
@@ -103,7 +103,7 @@ class ShenyuClientRegisterWebSocketServiceImplTest {
assertEquals(webSocketUpstreamResult.get("host"), "localhost");
assertEquals(webSocketUpstreamResult.get("url"), "host:8080");
assertEquals(webSocketUpstreamResult.get("weight"), 50.0);
- assertEquals(webSocketUpstreamResult.get("warmup"), 10.0);
+ assertEquals(webSocketUpstreamResult.get("warmup"), 600000.0);
assertEquals(webSocketUpstreamResult.get("upstreamHost"), "localhost");
assertEquals(webSocketUpstreamResult.get("status"), true);
@@ -123,7 +123,7 @@ class ShenyuClientRegisterWebSocketServiceImplTest {
assertEquals(webSocketUpstreamResult.get("host"), "localhost");
assertEquals(webSocketUpstreamResult.get("url"), "host:8080");
assertEquals(webSocketUpstreamResult.get("weight"), 50.0);
- assertEquals(webSocketUpstreamResult.get("warmup"), 10.0);
+ assertEquals(webSocketUpstreamResult.get("warmup"), 600000.0);
assertEquals(webSocketUpstreamResult.get("upstreamHost"), "localhost");
assertEquals(webSocketUpstreamResult.get("status"), true);
}
diff --git a/shenyu-common/src/main/java/org/apache/shenyu/common/constant/Constants.java b/shenyu-common/src/main/java/org/apache/shenyu/common/constant/Constants.java
index 2a871b19e..023380e3d 100644
--- a/shenyu-common/src/main/java/org/apache/shenyu/common/constant/Constants.java
+++ b/shenyu-common/src/main/java/org/apache/shenyu/common/constant/Constants.java
@@ -691,6 +691,11 @@ public interface Constants {
* brpc spi bizThreadPoolName.
*/
String SHARED_BIZTHREADPOOLNAME = "shared";
+
+ /**
+ * the default warm time is ten minutes.
+ */
+ int WARMUP_TIME = 10 * 60 * 1000;
/**
* String q.
diff --git a/shenyu-plugin/shenyu-plugin-springcloud/src/main/java/org/apache/shenyu/plugin/springcloud/loadbalance/ShenyuSpringCloudServiceChooser.java b/shenyu-plugin/shenyu-plugin-springcloud/src/main/java/org/apache/shenyu/plugin/springcloud/loadbalance/ShenyuSpringCloudServiceChooser.java
index db9d26202..e41f5cf78 100644
--- a/shenyu-plugin/shenyu-plugin-springcloud/src/main/java/org/apache/shenyu/plugin/springcloud/loadbalance/ShenyuSpringCloudServiceChooser.java
+++ b/shenyu-plugin/shenyu-plugin-springcloud/src/main/java/org/apache/shenyu/plugin/springcloud/loadbalance/ShenyuSpringCloudServiceChooser.java
@@ -18,6 +18,7 @@
package org.apache.shenyu.plugin.springcloud.loadbalance;
import org.apache.commons.collections4.CollectionUtils;
+import org.apache.shenyu.common.constant.Constants;
import org.apache.shenyu.common.dto.convert.selector.SpringCloudSelectorHandle;
import org.apache.shenyu.loadbalancer.cache.UpstreamCacheManager;
import org.apache.shenyu.loadbalancer.entity.Upstream;
@@ -149,7 +150,7 @@ public final class ShenyuSpringCloudServiceChooser {
return Upstream.builder().url(upstreamUrl)
.protocol(protocol)
.weight(50)
- .warmup(10)
+ .warmup(Constants.WARMUP_TIME)
.timestamp(0)
.build();
}