This commit is contained in:
2025-06-17 17:08:14 +08:00
commit 71179324c8
1205 changed files with 798946 additions and 0 deletions

View File

@@ -0,0 +1,52 @@
package org.dromara.common.sentinel.config;
import com.alibaba.cloud.commons.lang.StringUtils;
import com.alibaba.cloud.sentinel.SentinelProperties;
import com.alibaba.cloud.sentinel.custom.SentinelAutoConfiguration;
import com.alibaba.csp.sentinel.init.InitExecutor;
import com.alibaba.csp.sentinel.transport.config.TransportConfig;
import org.dromara.common.core.utils.StreamUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.autoconfigure.AutoConfiguration;
import org.springframework.boot.context.properties.EnableConfigurationProperties;
import org.springframework.cloud.client.ServiceInstance;
import org.springframework.cloud.client.discovery.DiscoveryClient;
import org.springframework.context.annotation.Bean;
import java.util.List;
/**
* @author Lion Li
*/
@AutoConfiguration(before = SentinelAutoConfiguration.class)
@EnableConfigurationProperties({SentinelProperties.class, SentinelCustomProperties.class})
public class SentinelCustomAutoConfiguration {
@Autowired
private SentinelProperties properties;
@Autowired
private SentinelCustomProperties customProperties;
@Autowired
private DiscoveryClient discoveryClient;
@Bean
public Object sentinelInit() {
if (StringUtils.isNotBlank(customProperties.getServerName())) {
List<ServiceInstance> instances = discoveryClient.getInstances(customProperties.getServerName());
String serverList = StreamUtils.join(instances, instance ->
String.format("http://%s:%s", instance.getHost(), instance.getPort()));
System.setProperty(TransportConfig.CONSOLE_SERVER, serverList);
} else {
if (StringUtils.isEmpty(System.getProperty(TransportConfig.CONSOLE_SERVER))
&& StringUtils.isNotBlank(properties.getTransport().getDashboard())) {
System.setProperty(TransportConfig.CONSOLE_SERVER,
properties.getTransport().getDashboard());
}
}
// 手动初始化 sentinel
InitExecutor.doInit();
return new Object();
}
}

View File

@@ -0,0 +1,17 @@
package org.dromara.common.sentinel.config;
import lombok.Data;
import org.springframework.boot.context.properties.ConfigurationProperties;
/**
* sentinel自定义配置类
*
* @author Lion Li
*/
@Data
@ConfigurationProperties(prefix = "spring.cloud.sentinel.transport")
public class SentinelCustomProperties {
private String serverName;
}

View File

@@ -0,0 +1 @@
org.dromara.common.sentinel.config.SentinelCustomAutoConfiguration