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