diff --git a/hippo4j-config/src/main/java/cn/hippo4j/config/controller/ConfigController.java b/hippo4j-config/src/main/java/cn/hippo4j/config/controller/ConfigController.java index a202e400..65872d19 100644 --- a/hippo4j-config/src/main/java/cn/hippo4j/config/controller/ConfigController.java +++ b/hippo4j-config/src/main/java/cn/hippo4j/config/controller/ConfigController.java @@ -78,7 +78,7 @@ public class ConfigController { modifySaveReqDTO.setCorePoolSize(config.getCoreSize()); modifySaveReqDTO.setMaximumPoolSize(config.getMaxSize()); modifySaveReqDTO.setModifyUser(UserContext.getUserName()); - modifySaveReqDTO.setModifyAll(StringUtil.isNotBlank(identify) ? EnableEnum.NO.getIntCode() : EnableEnum.YES.getIntCode()); + modifySaveReqDTO.setModifyAll(StringUtil.isEmpty(identify) ? true : false); modifySaveReqDTO.setInstanceId(identify); modifySaveReqDTO.setType(ConfigModifyTypeConstants.THREAD_POOL_INSTANCE); configModifyVerifyServiceChoose.choose(modifySaveReqDTO.getType()).saveConfigModifyApplication(modifySaveReqDTO); 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 1d675557..d8446251 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 @@ -73,7 +73,7 @@ public class HisConfigVerifyInfo { /** * weather modify all thread pool instances */ - private Integer modifyAll = 0; + private Boolean modifyAll = false; /** * gmtCreate diff --git a/hippo4j-config/src/main/java/cn/hippo4j/config/model/biz/adapter/ThreadPoolAdapterReqDTO.java b/hippo4j-config/src/main/java/cn/hippo4j/config/model/biz/adapter/ThreadPoolAdapterReqDTO.java index 01d8b119..55514186 100644 --- a/hippo4j-config/src/main/java/cn/hippo4j/config/model/biz/adapter/ThreadPoolAdapterReqDTO.java +++ b/hippo4j-config/src/main/java/cn/hippo4j/config/model/biz/adapter/ThreadPoolAdapterReqDTO.java @@ -70,5 +70,5 @@ public class ThreadPoolAdapterReqDTO { /** * weather Modify all instances */ - private Integer modifyAll; + private Boolean modifyAll; } 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 45af5b65..984e2120 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 @@ -39,7 +39,7 @@ public class ConfigModifySaveReqDTO { /** * weather modify all instances */ - private Integer modifyAll = EnableEnum.NO.getIntCode(); + private Boolean modifyAll = false; /** * TenantId diff --git a/hippo4j-config/src/main/java/cn/hippo4j/config/model/biz/threadpool/ConfigModifyVerifyReqDTO.java b/hippo4j-config/src/main/java/cn/hippo4j/config/model/biz/threadpool/ConfigModifyVerifyReqDTO.java index e4c8a01f..b65087fa 100644 --- a/hippo4j-config/src/main/java/cn/hippo4j/config/model/biz/threadpool/ConfigModifyVerifyReqDTO.java +++ b/hippo4j-config/src/main/java/cn/hippo4j/config/model/biz/threadpool/ConfigModifyVerifyReqDTO.java @@ -17,10 +17,11 @@ package cn.hippo4j.config.model.biz.threadpool; -import cn.hippo4j.common.model.ThreadPoolParameterInfo; -import cn.hippo4j.config.model.biz.adapter.ThreadPoolAdapterReqDTO; +import com.fasterxml.jackson.annotation.JsonAlias; import lombok.Data; +import java.util.List; + /** * config modify verify dto */ @@ -37,28 +38,96 @@ public class ConfigModifyVerifyReqDTO { */ private Integer type; + /** + * Tenant id + */ + private String tenantId; + + /** + * item id + */ + private String itemId; + /** * instance id */ private String instanceId; + /** + * Thread-pool id + */ + @JsonAlias("threadPoolId") + private String tpId; + + /** + * weather modify all instances + */ + private Boolean modifyAll; + + /** + * Client address list + */ + private List clientAddressList; + /** * weather accept config modification */ private Boolean accept; /** - * thread pool parameter info + * Core pool size */ - private ThreadPoolParameterInfo threadPoolParameterInfo; + private Integer corePoolSize; /** - * web thread pool req dto + * Maximum pool size */ - private WebThreadPoolReqDTO webThreadPoolReqDTO; + private Integer maximumPoolSize; /** - * thread pool adapter req dto + * Queue type */ - private ThreadPoolAdapterReqDTO threadPoolAdapterReqDTO; + private Integer queueType; + + /** + * Capacity + */ + private Integer capacity; + + /** + * Keep alive time + */ + private Integer keepAliveTime; + + /** + * Execute time out + */ + private Long executeTimeOut; + + /** + * Rejected type + */ + private Integer rejectedType; + + /** + * Is alarm + */ + private Integer isAlarm; + + /** + * Capacity alarm + */ + private Integer capacityAlarm; + + /** + * Liveness alarm + */ + @JsonAlias("activeAlarm") + private Integer livenessAlarm; + + /** + * Allow core thread timeout + */ + private Integer allowCoreThreadTimeOut; + } 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 deleted file mode 100644 index 745b8a81..00000000 --- a/hippo4j-config/src/main/java/cn/hippo4j/config/model/biz/threadpool/WebThreadPoolReqDTO.java +++ /dev/null @@ -1,57 +0,0 @@ -/* - * Licensed to the Apache Software Foundation (ASF) under one or more - * contributor license agreements. See the NOTICE file distributed with - * this work for additional information regarding copyright ownership. - * The ASF licenses this file to You under the Apache License, Version 2.0 - * (the "License"); you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package cn.hippo4j.config.model.biz.threadpool; - -import lombok.Data; - -import java.util.List; - -@Data -public class WebThreadPoolReqDTO { - - /** - * Thread-pool id - */ - private String tenantId; - - /** - * Item id - */ - private String itemId; - - /** - * Core pool size - */ - private Integer corePoolSize; - - /** - * Maximum pool size - */ - private Integer maximumPoolSize; - - /** - * Keep alive time - */ - private Integer keepAliveTime; - - /** - * weather modify all instances - */ - private Integer modifyAll; - -} diff --git a/hippo4j-config/src/main/java/cn/hippo4j/config/service/biz/impl/AbstractConfigModifyVerifyService.java b/hippo4j-config/src/main/java/cn/hippo4j/config/service/biz/impl/AbstractConfigModifyVerifyService.java index 8083058a..eb6a91ed 100644 --- a/hippo4j-config/src/main/java/cn/hippo4j/config/service/biz/impl/AbstractConfigModifyVerifyService.java +++ b/hippo4j-config/src/main/java/cn/hippo4j/config/service/biz/impl/AbstractConfigModifyVerifyService.java @@ -18,6 +18,8 @@ package cn.hippo4j.config.service.biz.impl; import cn.hippo4j.common.enums.VerifyEnum; +import cn.hippo4j.common.model.InstanceInfo; +import cn.hippo4j.common.toolkit.ConditionUtil; import cn.hippo4j.common.toolkit.JSONUtil; import cn.hippo4j.common.toolkit.UserContext; import cn.hippo4j.config.mapper.HisConfigVerifyMapper; @@ -26,16 +28,24 @@ import cn.hippo4j.config.model.biz.threadpool.ConfigModifySaveReqDTO; import cn.hippo4j.config.model.biz.threadpool.ConfigModifyVerifyReqDTO; import cn.hippo4j.config.service.biz.ConfigModifyVerifyService; import cn.hippo4j.config.toolkit.BeanUtil; +import cn.hippo4j.discovery.core.BaseInstanceRegistry; +import cn.hippo4j.discovery.core.Lease; +import cn.hutool.core.text.StrBuilder; import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper; import javax.annotation.Resource; +import java.util.ArrayList; import java.util.Date; +import java.util.List; public abstract class AbstractConfigModifyVerifyService implements ConfigModifyVerifyService { @Resource protected HisConfigVerifyMapper hisConfigVerifyMapper; + @Resource + private BaseInstanceRegistry baseInstanceRegistry; + @Override public void saveConfigModifyApplication(ConfigModifySaveReqDTO reqDTO) { HisConfigVerifyInfo hisConfigVerifyInfo = BeanUtil.convert(reqDTO, HisConfigVerifyInfo.class); @@ -66,12 +76,33 @@ public abstract class AbstractConfigModifyVerifyService implements ConfigModifyV hisConfigVerifyMapper.update(null, updateWrapper); + reqDTO.setClientAddressList(getClientAddress(reqDTO)); + updateThreadPoolParameter(reqDTO); } + /** + * get client address according to weather modifyAll + * @param reqDTO + * @return + */ + private List getClientAddress(ConfigModifyVerifyReqDTO reqDTO) { + List clientAddressList = new ArrayList<>(); + ConditionUtil + .condition(reqDTO.getModifyAll(), + () -> { + List> leases = baseInstanceRegistry.listInstance(reqDTO.getItemId()); + leases.stream() + .forEach(lease -> clientAddressList.add(StrBuilder.create(lease.getHolder().getHostName(), ":", lease.getHolder().getPort()).toString())); + }, + () -> clientAddressList.add(reqDTO.getInstanceId().split("_")[0])); + return clientAddressList; + } + /** * update thread pool parameter * @param reqDTO */ protected abstract void updateThreadPoolParameter(ConfigModifyVerifyReqDTO reqDTO); + } diff --git a/hippo4j-config/src/main/java/cn/hippo4j/config/service/biz/impl/AdapterThreadPoolConfigModifyVerifyServiceImpl.java b/hippo4j-config/src/main/java/cn/hippo4j/config/service/biz/impl/AdapterThreadPoolConfigModifyVerifyServiceImpl.java index 1ce847cc..289e87d4 100644 --- a/hippo4j-config/src/main/java/cn/hippo4j/config/service/biz/impl/AdapterThreadPoolConfigModifyVerifyServiceImpl.java +++ b/hippo4j-config/src/main/java/cn/hippo4j/config/service/biz/impl/AdapterThreadPoolConfigModifyVerifyServiceImpl.java @@ -39,10 +39,9 @@ public class AdapterThreadPoolConfigModifyVerifyServiceImpl extends AbstractConf @Override protected void updateThreadPoolParameter(ConfigModifyVerifyReqDTO reqDTO) { - ThreadPoolAdapterReqDTO threadPoolAdapterReqDTO = reqDTO.getThreadPoolAdapterReqDTO(); - for (String each : threadPoolAdapterReqDTO.getClientAddressList()) { + for (String each : reqDTO.getClientAddressList()) { String urlString = StrBuilder.create("http://", each, "/adapter/thread-pool/update").toString(); - HttpUtil.post(urlString, JSONUtil.toJSONString(threadPoolAdapterReqDTO), HTTP_EXECUTE_TIMEOUT); + HttpUtil.post(urlString, JSONUtil.toJSONString(reqDTO), HTTP_EXECUTE_TIMEOUT); } } } diff --git a/hippo4j-config/src/main/java/cn/hippo4j/config/service/biz/impl/ThreadPoolInstanceConfigModifyVerifyServiceImpl.java b/hippo4j-config/src/main/java/cn/hippo4j/config/service/biz/impl/ThreadPoolInstanceConfigModifyVerifyServiceImpl.java index 6d900d3e..b3db2c46 100644 --- a/hippo4j-config/src/main/java/cn/hippo4j/config/service/biz/impl/ThreadPoolInstanceConfigModifyVerifyServiceImpl.java +++ b/hippo4j-config/src/main/java/cn/hippo4j/config/service/biz/impl/ThreadPoolInstanceConfigModifyVerifyServiceImpl.java @@ -41,7 +41,7 @@ public class ThreadPoolInstanceConfigModifyVerifyServiceImpl extends AbstractCon @Override protected void updateThreadPoolParameter(ConfigModifyVerifyReqDTO reqDTO) { - ConfigAllInfo config = BeanUtil.convert(reqDTO.getThreadPoolParameterInfo(), ConfigAllInfo.class); + ConfigAllInfo config = BeanUtil.convert(reqDTO, ConfigAllInfo.class); configService.insertOrUpdate(reqDTO.getInstanceId(), true, config); } diff --git a/hippo4j-config/src/main/java/cn/hippo4j/config/service/biz/impl/ThreadPoolManageConfigModifyVerifyServiceImpl.java b/hippo4j-config/src/main/java/cn/hippo4j/config/service/biz/impl/ThreadPoolManageConfigModifyVerifyServiceImpl.java index 1a14ad4c..4372dd90 100644 --- a/hippo4j-config/src/main/java/cn/hippo4j/config/service/biz/impl/ThreadPoolManageConfigModifyVerifyServiceImpl.java +++ b/hippo4j-config/src/main/java/cn/hippo4j/config/service/biz/impl/ThreadPoolManageConfigModifyVerifyServiceImpl.java @@ -42,8 +42,9 @@ public class ThreadPoolManageConfigModifyVerifyServiceImpl extends AbstractConfi @Override public void updateThreadPoolParameter(ConfigModifyVerifyReqDTO reqDTO) { - ThreadPoolParameterInfo poolParameterInfo = reqDTO.getThreadPoolParameterInfo(); - ThreadPoolSaveOrUpdateReqDTO saveOrUpdateReqDTO = BeanUtil.convert(poolParameterInfo, ThreadPoolSaveOrUpdateReqDTO.class); + ThreadPoolSaveOrUpdateReqDTO saveOrUpdateReqDTO = BeanUtil.convert(reqDTO, ThreadPoolSaveOrUpdateReqDTO.class); + saveOrUpdateReqDTO.setCoreSize(reqDTO.getCorePoolSize()); + saveOrUpdateReqDTO.setMaxSize(reqDTO.getMaximumPoolSize()); threadPoolService.saveOrUpdateThreadPoolConfig(null, saveOrUpdateReqDTO); } diff --git a/hippo4j-config/src/main/java/cn/hippo4j/config/service/biz/impl/ThreadPoolServiceImpl.java b/hippo4j-config/src/main/java/cn/hippo4j/config/service/biz/impl/ThreadPoolServiceImpl.java index ac313826..312d1ebe 100644 --- a/hippo4j-config/src/main/java/cn/hippo4j/config/service/biz/impl/ThreadPoolServiceImpl.java +++ b/hippo4j-config/src/main/java/cn/hippo4j/config/service/biz/impl/ThreadPoolServiceImpl.java @@ -95,7 +95,7 @@ public class ThreadPoolServiceImpl implements ThreadPoolService { modifySaveReqDTO.setCorePoolSize(reqDTO.getCoreSize()); modifySaveReqDTO.setMaximumPoolSize(reqDTO.getMaxSize()); modifySaveReqDTO.setModifyUser(UserContext.getUserName()); - modifySaveReqDTO.setModifyAll(EnableEnum.NO.getIntCode()); + modifySaveReqDTO.setModifyAll(false); modifySaveReqDTO.setType(ConfigModifyTypeConstants.THREAD_POOL_MANAGER); configModifyVerifyServiceChoose.choose(modifySaveReqDTO.getType()).saveConfigModifyApplication(modifySaveReqDTO); } 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 e7d0cd08..4ce4aa81 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,24 +18,12 @@ 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; @@ -43,9 +31,6 @@ 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; @@ -53,20 +38,9 @@ public class WebThreadPoolConfigModifyVerifyServiceImpl extends AbstractConfigMo @Override protected void updateThreadPoolParameter(ConfigModifyVerifyReqDTO reqDTO) { - WebThreadPoolReqDTO webThreadPoolReqDTO = reqDTO.getWebThreadPoolReqDTO(); - 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) { + for (String each : reqDTO.getClientAddressList()) { String urlString = StrBuilder.create("http://", each, "/web/update/pool").toString(); - HttpUtil.post(urlString, JSONUtil.toJSONString(webThreadPoolReqDTO), HTTP_EXECUTE_TIMEOUT); + HttpUtil.post(urlString, JSONUtil.toJSONString(reqDTO), HTTP_EXECUTE_TIMEOUT); } } }