diff --git a/hippo4j-config/pom.xml b/hippo4j-config/pom.xml
index 11c8eac7..e67880e1 100644
--- a/hippo4j-config/pom.xml
+++ b/hippo4j-config/pom.xml
@@ -73,6 +73,12 @@
${version}
+
+ cn.hippo4j
+ hippo4j-discovery
+ ${version}
+
+
io.netty
netty-all
diff --git a/hippo4j-config/src/main/java/cn/hippo4j/config/model/HisConfigVerifyInfo.java b/hippo4j-config/src/main/java/cn/hippo4j/config/model/HisConfigVerifyInfo.java
index 6bb8026a..1d675557 100644
--- a/hippo4j-config/src/main/java/cn/hippo4j/config/model/HisConfigVerifyInfo.java
+++ b/hippo4j-config/src/main/java/cn/hippo4j/config/model/HisConfigVerifyInfo.java
@@ -55,6 +55,11 @@ public class HisConfigVerifyInfo {
*/
private String tpId;
+ /**
+ * thread pool mark
+ */
+ private String mark;
+
/**
* thread pool instance id
*/
diff --git a/hippo4j-config/src/main/java/cn/hippo4j/config/model/biz/threadpool/ConfigModifySaveReqDTO.java b/hippo4j-config/src/main/java/cn/hippo4j/config/model/biz/threadpool/ConfigModifySaveReqDTO.java
index b2552bbd..45af5b65 100644
--- a/hippo4j-config/src/main/java/cn/hippo4j/config/model/biz/threadpool/ConfigModifySaveReqDTO.java
+++ b/hippo4j-config/src/main/java/cn/hippo4j/config/model/biz/threadpool/ConfigModifySaveReqDTO.java
@@ -59,6 +59,11 @@ public class ConfigModifySaveReqDTO {
@Pattern(regexp = "^((?!\\+).)*$", message = "租户、项目、线程池 ID 包含+号")
private String itemId;
+ /**
+ * thread pool mark
+ */
+ private String mark;
+
/**
* Core pool size
*/
diff --git a/hippo4j-config/src/main/java/cn/hippo4j/config/model/biz/threadpool/WebThreadPoolReqDTO.java b/hippo4j-config/src/main/java/cn/hippo4j/config/model/biz/threadpool/WebThreadPoolReqDTO.java
index b58fb88d..745b8a81 100644
--- a/hippo4j-config/src/main/java/cn/hippo4j/config/model/biz/threadpool/WebThreadPoolReqDTO.java
+++ b/hippo4j-config/src/main/java/cn/hippo4j/config/model/biz/threadpool/WebThreadPoolReqDTO.java
@@ -54,8 +54,4 @@ public class WebThreadPoolReqDTO {
*/
private Integer modifyAll;
- /**
- * Client address list
- */
- private List clientAddressList;
}
diff --git a/hippo4j-config/src/main/java/cn/hippo4j/config/service/biz/impl/WebThreadPoolConfigModifyVerifyServiceImpl.java b/hippo4j-config/src/main/java/cn/hippo4j/config/service/biz/impl/WebThreadPoolConfigModifyVerifyServiceImpl.java
index c0e96350..e7d0cd08 100644
--- a/hippo4j-config/src/main/java/cn/hippo4j/config/service/biz/impl/WebThreadPoolConfigModifyVerifyServiceImpl.java
+++ b/hippo4j-config/src/main/java/cn/hippo4j/config/service/biz/impl/WebThreadPoolConfigModifyVerifyServiceImpl.java
@@ -18,13 +18,24 @@
package cn.hippo4j.config.service.biz.impl;
import cn.hippo4j.common.constant.ConfigModifyTypeConstants;
+import cn.hippo4j.common.enums.EnableEnum;
+import cn.hippo4j.common.model.InstanceInfo;
import cn.hippo4j.common.toolkit.JSONUtil;
+import cn.hippo4j.common.toolkit.StringUtil;
import cn.hippo4j.config.model.biz.threadpool.ConfigModifyVerifyReqDTO;
import cn.hippo4j.config.model.biz.threadpool.WebThreadPoolReqDTO;
+import cn.hippo4j.discovery.core.BaseInstanceRegistry;
+import cn.hippo4j.discovery.core.Lease;
import cn.hutool.core.text.StrBuilder;
import cn.hutool.http.HttpUtil;
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Service;
+import org.springframework.util.StringUtils;
+
+import javax.annotation.Resource;
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.List;
import static cn.hippo4j.common.constant.Constants.HTTP_EXECUTE_TIMEOUT;
@@ -32,6 +43,9 @@ import static cn.hippo4j.common.constant.Constants.HTTP_EXECUTE_TIMEOUT;
@Service
public class WebThreadPoolConfigModifyVerifyServiceImpl extends AbstractConfigModifyVerifyService {
+ @Resource
+ private BaseInstanceRegistry baseInstanceRegistry;
+
@Override
public Integer type() {
return ConfigModifyTypeConstants.WEB_THREAD_POOL;
@@ -40,7 +54,17 @@ public class WebThreadPoolConfigModifyVerifyServiceImpl extends AbstractConfigMo
@Override
protected void updateThreadPoolParameter(ConfigModifyVerifyReqDTO reqDTO) {
WebThreadPoolReqDTO webThreadPoolReqDTO = reqDTO.getWebThreadPoolReqDTO();
- for (String each : webThreadPoolReqDTO.getClientAddressList()) {
+ List clientAddressList = new ArrayList<>();
+ // modify all instances
+ if (EnableEnum.YES.getIntCode() == webThreadPoolReqDTO.getModifyAll()) {
+ List> leases = baseInstanceRegistry.listInstance(webThreadPoolReqDTO.getItemId());
+ leases.stream()
+ .forEach(lease -> clientAddressList.add(StrBuilder.create(lease.getHolder().getHostName(), ":", lease.getHolder().getPort()).toString()));
+ } else {
+ clientAddressList.add(reqDTO.getInstanceId().split("_")[0]);
+ }
+
+ for (String each : clientAddressList) {
String urlString = StrBuilder.create("http://", each, "/web/update/pool").toString();
HttpUtil.post(urlString, JSONUtil.toJSONString(webThreadPoolReqDTO), HTTP_EXECUTE_TIMEOUT);
}
diff --git a/hippo4j-console/src/main/java/cn/hippo4j/console/controller/ThreadPoolAdapterController.java b/hippo4j-console/src/main/java/cn/hippo4j/console/controller/ThreadPoolAdapterController.java
index 083ae2e9..c70c50c1 100644
--- a/hippo4j-console/src/main/java/cn/hippo4j/console/controller/ThreadPoolAdapterController.java
+++ b/hippo4j-console/src/main/java/cn/hippo4j/console/controller/ThreadPoolAdapterController.java
@@ -77,6 +77,7 @@ public class ThreadPoolAdapterController {
modifySaveReqDTO.setModifyUser(UserContext.getUserName());
modifySaveReqDTO.setTenantId(requestParameter.getTenant());
modifySaveReqDTO.setItemId(requestParameter.getItem());
+ modifySaveReqDTO.setTpId(requestParameter.getThreadPoolKey());
modifySaveReqDTO.setInstanceId(requestParameter.getIdentify());
modifySaveReqDTO.setType(ConfigModifyTypeConstants.ADAPTER_THREAD_POOL);
configModifyVerifyServiceChoose.choose(modifySaveReqDTO.getType()).saveConfigModifyApplication(modifySaveReqDTO);