starter 组件适配客户端线程池集群差异化配置.

pull/28/head
chen.ma 3 years ago
parent 23024563c2
commit c054b4ab7d

@ -4,8 +4,8 @@ import cn.hippo4j.common.model.InstanceInfo;
import cn.hippo4j.common.toolkit.ContentUtil;
import cn.hippo4j.starter.core.DiscoveryClient;
import cn.hippo4j.starter.remote.HttpAgent;
import cn.hippo4j.starter.toolkit.IdentifyUtil;
import cn.hippo4j.starter.toolkit.inet.InetUtils;
import cn.hutool.core.util.StrUtil;
import lombok.AllArgsConstructor;
import lombok.SneakyThrows;
import org.springframework.context.annotation.Bean;
@ -29,7 +29,7 @@ public class DiscoveryConfig {
private final BootstrapProperties properties;
private final InetUtils inetUtils;
private final InetUtils hippo4JInetUtils;
@Bean
@SneakyThrows
@ -39,8 +39,8 @@ public class DiscoveryConfig {
String applicationName = environment.getProperty("spring.application.name");
InstanceInfo instanceInfo = new InstanceInfo();
instanceInfo.setInstanceId(getDefaultInstanceId(environment, inetUtils))
.setIpApplicationName(getIpApplicationName(environment, inetUtils))
instanceInfo.setInstanceId(getDefaultInstanceId(environment, hippo4JInetUtils))
.setIpApplicationName(getIpApplicationName(environment, hippo4JInetUtils))
.setHostName(InetAddress.getLocalHost().getHostAddress())
.setGroupKey(itemId + "+" + namespace)
.setAppName(applicationName)
@ -52,11 +52,8 @@ public class DiscoveryConfig {
.toString();
instanceInfo.setCallBackUrl(callBackUrl);
String ip = inetUtils.findFirstNonLoopbackHostInfo().getIpAddress();
String port = environment.getProperty("server.port");
String identification = StrUtil.builder(ip, ":", port).toString();
instanceInfo.setIdentify(identification);
String identify = IdentifyUtil.generate(environment, hippo4JInetUtils);
instanceInfo.setIdentify(identify);
return instanceInfo;
}

@ -1,6 +1,5 @@
package cn.hippo4j.starter.config;
import cn.hutool.core.util.StrUtil;
import cn.hippo4j.common.config.ApplicationContextHolder;
import cn.hippo4j.starter.controller.PoolRunStateController;
import cn.hippo4j.starter.core.ConfigService;
@ -10,7 +9,9 @@ import cn.hippo4j.starter.core.ThreadPoolOperation;
import cn.hippo4j.starter.enable.MarkerConfiguration;
import cn.hippo4j.starter.handler.DynamicThreadPoolBannerHandler;
import cn.hippo4j.starter.remote.HttpAgent;
import cn.hippo4j.starter.toolkit.IdentifyUtil;
import cn.hippo4j.starter.toolkit.inet.InetUtils;
import cn.hutool.core.util.IdUtil;
import lombok.AllArgsConstructor;
import org.springframework.boot.autoconfigure.ImportAutoConfiguration;
import org.springframework.boot.autoconfigure.condition.ConditionalOnBean;
@ -38,6 +39,8 @@ public class DynamicThreadPoolAutoConfiguration {
private final ConfigurableEnvironment environment;
public static final String CLIENT_IDENTIFICATION_VALUE = IdUtil.simpleUUID();
@Bean
public DynamicThreadPoolBannerHandler threadPoolBannerHandler() {
return new DynamicThreadPoolBannerHandler(properties);
@ -52,10 +55,8 @@ public class DynamicThreadPoolAutoConfiguration {
@Bean
@SuppressWarnings("all")
public ConfigService configService(HttpAgent httpAgent, InetUtils hippo4JInetUtils) {
String ip = hippo4JInetUtils.findFirstNonLoopbackHostInfo().getIpAddress();
String port = environment.getProperty("server.port");
String identification = StrUtil.builder(ip, ":", port).toString();
return new ThreadPoolConfigService(httpAgent, identification);
String identify = IdentifyUtil.generate(environment, hippo4JInetUtils);
return new ThreadPoolConfigService(httpAgent, identify);
}
@Bean

@ -70,7 +70,7 @@ public class ClientWorker implements DisposableBean {
return t;
});
log.info("Client identity :: {}", CLIENT_IDENTIFICATION_VALUE);
log.info("Client identity :: {}", identification);
this.executor.scheduleWithFixedDelay(() -> {
try {
@ -216,6 +216,7 @@ public class ClientWorker implements DisposableBean {
params.put("namespace", namespace);
params.put("itemId", itemId);
params.put("tpId", tpId);
params.put("instanceId", identification);
Result result = agent.httpGetByConfig(CONFIG_CONTROLLER_PATH, null, params, readTimeout);
if (result.isSuccess()) {

@ -0,0 +1,38 @@
package cn.hippo4j.starter.toolkit;
import cn.hippo4j.starter.toolkit.inet.InetUtils;
import cn.hutool.core.util.StrUtil;
import org.springframework.core.env.ConfigurableEnvironment;
import static cn.hippo4j.common.constant.Constants.IDENTIFY_SLICER_SYMBOL;
import static cn.hippo4j.starter.config.DynamicThreadPoolAutoConfiguration.CLIENT_IDENTIFICATION_VALUE;
/**
* Identify util.
*
* @author chen.ma
* @date 2021/12/5 22:25
*/
public class IdentifyUtil {
/**
* Generate identify.
*
* @param environment
* @param hippo4JInetUtils
* @return
*/
public static String generate(ConfigurableEnvironment environment, InetUtils hippo4JInetUtils) {
String ip = hippo4JInetUtils.findFirstNonLoopbackHostInfo().getIpAddress();
String port = environment.getProperty("server.port");
String identification = StrUtil.builder(ip,
":",
port,
IDENTIFY_SLICER_SYMBOL,
CLIENT_IDENTIFICATION_VALUE
).toString();
return identification;
}
}
Loading…
Cancel
Save