refactor(nacos): 重构Nacos配置管理并更新默认设置
- 使用@Autowired注入Nacos配置信息,替换原有@Value方式 - 新增NacosServerConfig类统一管理Nacos服务器配置 - 更新application.properties中的默认用户名和密码为admin/admin - 修改Nacos命名空间配置为namespace-sentinel - 调整Nacos配置工具类中的数据ID前缀和组ID常量 - 添加API分组和网关流控规则相关的数据ID生成方法 - 统一Nacos配置服务创建逻辑,使用新的配置注入方式
This commit is contained in:
parent
35dbe68c4d
commit
c48e742041
|
|
@ -21,7 +21,7 @@ import com.alibaba.fastjson.JSON;
|
||||||
import com.alibaba.nacos.api.PropertyKeyConst;
|
import com.alibaba.nacos.api.PropertyKeyConst;
|
||||||
import com.alibaba.nacos.api.config.ConfigFactory;
|
import com.alibaba.nacos.api.config.ConfigFactory;
|
||||||
import com.alibaba.nacos.api.config.ConfigService;
|
import com.alibaba.nacos.api.config.ConfigService;
|
||||||
import org.springframework.beans.factory.annotation.Value;
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
import org.springframework.context.annotation.Bean;
|
import org.springframework.context.annotation.Bean;
|
||||||
import org.springframework.context.annotation.Configuration;
|
import org.springframework.context.annotation.Configuration;
|
||||||
|
|
||||||
|
|
@ -34,22 +34,16 @@ import java.util.Properties;
|
||||||
*/
|
*/
|
||||||
@Configuration
|
@Configuration
|
||||||
public class NacosConfig {
|
public class NacosConfig {
|
||||||
// ----------------------- 读取配置文件中设置的值 start -----------------------
|
// 注入配置信息
|
||||||
@Value("${nacos.config.server-addr:http://127.0.0.1:8848}")
|
@Autowired
|
||||||
private String nacosServerAddr;
|
private NacosServerConfig config;
|
||||||
@Value("${nacos.config.namespace}")
|
|
||||||
private String nacosNamespace;
|
|
||||||
@Value("${nacos.config.username:nacos}")
|
|
||||||
private String nacosUsername;
|
|
||||||
@Value("${nacos.config.password:nacos}")
|
|
||||||
private String nacosPassword;
|
|
||||||
// ----------------------- 读取配置文件中设置的值 end -----------------------
|
|
||||||
|
|
||||||
/***************** System Start ******************/
|
/***************** System Start ******************/
|
||||||
@Bean
|
@Bean
|
||||||
public Converter<List<AuthorityRuleEntity>, String> authorityRuleEntityEncoder() {
|
public Converter<List<AuthorityRuleEntity>, String> authorityRuleEntityEncoder() {
|
||||||
return JSON::toJSONString;
|
return JSON::toJSONString;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Bean
|
@Bean
|
||||||
public Converter<String, List<AuthorityRuleEntity>> authorityRuleEntityDecoder() {
|
public Converter<String, List<AuthorityRuleEntity>> authorityRuleEntityDecoder() {
|
||||||
return s -> JSON.parseArray(s, AuthorityRuleEntity.class);
|
return s -> JSON.parseArray(s, AuthorityRuleEntity.class);
|
||||||
|
|
@ -62,6 +56,7 @@ public class NacosConfig {
|
||||||
public Converter<List<DegradeRuleEntity>, String> degradeRuleEntityEncoder() {
|
public Converter<List<DegradeRuleEntity>, String> degradeRuleEntityEncoder() {
|
||||||
return JSON::toJSONString;
|
return JSON::toJSONString;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Bean
|
@Bean
|
||||||
public Converter<String, List<DegradeRuleEntity>> degradeRuleEntityDecoder() {
|
public Converter<String, List<DegradeRuleEntity>> degradeRuleEntityDecoder() {
|
||||||
return s -> JSON.parseArray(s, DegradeRuleEntity.class);
|
return s -> JSON.parseArray(s, DegradeRuleEntity.class);
|
||||||
|
|
@ -74,6 +69,7 @@ public class NacosConfig {
|
||||||
public Converter<List<SystemRuleEntity>, String> systemRuleEntityEncoder() {
|
public Converter<List<SystemRuleEntity>, String> systemRuleEntityEncoder() {
|
||||||
return JSON::toJSONString;
|
return JSON::toJSONString;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Bean
|
@Bean
|
||||||
public Converter<String, List<SystemRuleEntity>> systemRuleEntityDecoder() {
|
public Converter<String, List<SystemRuleEntity>> systemRuleEntityDecoder() {
|
||||||
return s -> JSON.parseArray(s, SystemRuleEntity.class);
|
return s -> JSON.parseArray(s, SystemRuleEntity.class);
|
||||||
|
|
@ -86,6 +82,7 @@ public class NacosConfig {
|
||||||
public Converter<List<ParamFlowRuleEntity>, String> paramRuleEntityEncoder() {
|
public Converter<List<ParamFlowRuleEntity>, String> paramRuleEntityEncoder() {
|
||||||
return JSON::toJSONString;
|
return JSON::toJSONString;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Bean
|
@Bean
|
||||||
public Converter<String, List<ParamFlowRuleEntity>> paramRuleEntityDecoder() {
|
public Converter<String, List<ParamFlowRuleEntity>> paramRuleEntityDecoder() {
|
||||||
return s -> JSON.parseArray(s, ParamFlowRuleEntity.class);
|
return s -> JSON.parseArray(s, ParamFlowRuleEntity.class);
|
||||||
|
|
@ -98,10 +95,12 @@ public class NacosConfig {
|
||||||
public Converter<List<FlowRuleEntity>, String> flowRuleEntityEncoder() {
|
public Converter<List<FlowRuleEntity>, String> flowRuleEntityEncoder() {
|
||||||
return JSON::toJSONString;
|
return JSON::toJSONString;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Bean
|
@Bean
|
||||||
public Converter<String, List<FlowRuleEntity>> flowRuleEntityDecoder() {
|
public Converter<String, List<FlowRuleEntity>> flowRuleEntityDecoder() {
|
||||||
return s -> JSON.parseArray(s, FlowRuleEntity.class);
|
return s -> JSON.parseArray(s, FlowRuleEntity.class);
|
||||||
}
|
}
|
||||||
|
|
||||||
/***************** Flow End ******************/
|
/***************** Flow End ******************/
|
||||||
|
|
||||||
|
|
||||||
|
|
@ -109,11 +108,10 @@ public class NacosConfig {
|
||||||
public ConfigService nacosConfigService() throws Exception {
|
public ConfigService nacosConfigService() throws Exception {
|
||||||
// 创建Nacos配置服务
|
// 创建Nacos配置服务
|
||||||
Properties properties = new Properties();
|
Properties properties = new Properties();
|
||||||
properties.setProperty(PropertyKeyConst.SERVER_ADDR, nacosServerAddr);
|
properties.setProperty(PropertyKeyConst.SERVER_ADDR, config.getServerAddr());
|
||||||
properties.setProperty(PropertyKeyConst.NAMESPACE, nacosNamespace);
|
properties.setProperty(PropertyKeyConst.NAMESPACE, config.getNamespace());
|
||||||
properties.setProperty(PropertyKeyConst.USERNAME, nacosUsername);
|
properties.setProperty(PropertyKeyConst.USERNAME, config.getUsername());
|
||||||
properties.setProperty(PropertyKeyConst.PASSWORD, nacosPassword);
|
properties.setProperty(PropertyKeyConst.PASSWORD, config.getPassword());
|
||||||
// return ConfigFactory.createConfigService("localhost");
|
|
||||||
// 创建Nacos配置服务实例并返回
|
// 创建Nacos配置服务实例并返回
|
||||||
return ConfigFactory.createConfigService(properties);
|
return ConfigFactory.createConfigService(properties);
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -21,14 +21,24 @@ package com.alibaba.csp.sentinel.dashboard.rule.nacos;
|
||||||
*/
|
*/
|
||||||
public final class NacosConfigUtil {
|
public final class NacosConfigUtil {
|
||||||
|
|
||||||
public static final String GROUP_ID = "SENTINEL_GROUP";
|
// public static final String GROUP_ID = "SENTINEL_GROUP";
|
||||||
|
public static final String GROUP_ID = "DEFAULT_GROUP";
|
||||||
public static final String GLOBAL_DATA_ID_POSTFIX = ".json";
|
public static final String GLOBAL_DATA_ID_POSTFIX = ".json";
|
||||||
|
|
||||||
public static final String FLOW_DATA_ID_PREFIX = "flow-rules-";
|
// 流控规则
|
||||||
public static final String PARAM_FLOW_DATA_ID_PREFIX = "param-rules-";
|
public static final String FLOW_DATA_ID_PREFIX = "flow-";
|
||||||
public static final String DEGRADE_DATA_ID_PREFIX = "degrade-rules-";
|
// 热点参数规则
|
||||||
public static final String AUTHORITY_DATA_ID_PREFIX = "auth-rules-";
|
public static final String PARAM_FLOW_DATA_ID_PREFIX = "param-";
|
||||||
public static final String SYSTEM_DATA_ID_PREFIX = "system-rules-";
|
// 熔断规则
|
||||||
|
public static final String DEGRADE_DATA_ID_PREFIX = "degrade-";
|
||||||
|
// 授权规则
|
||||||
|
public static final String AUTHORITY_DATA_ID_PREFIX = "auth-";
|
||||||
|
// 系统规则
|
||||||
|
public static final String SYSTEM_DATA_ID_PREFIX = "system-";
|
||||||
|
// api分组
|
||||||
|
public static final String API_GROUP_DATA_ID_PREFIX = "api-group-";
|
||||||
|
// 网关流控规则
|
||||||
|
public static final String GATEWAY_FLOW_DATA_ID_PREFIX = "gateway-flow-";
|
||||||
|
|
||||||
public static final String CLUSTER_MAP_DATA_ID_POSTFIX = "-cluster-map";
|
public static final String CLUSTER_MAP_DATA_ID_POSTFIX = "-cluster-map";
|
||||||
|
|
||||||
|
|
@ -46,6 +56,18 @@ public final class NacosConfigUtil {
|
||||||
private NacosConfigUtil() {
|
private NacosConfigUtil() {
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
public static String getApiGroupDataId(String appName) {
|
||||||
|
return String.format("%s%s%s", NacosConfigUtil.API_GROUP_DATA_ID_PREFIX, appName, NacosConfigUtil.GLOBAL_DATA_ID_POSTFIX);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
public static String getGatewayFlowDataId(String appName) {
|
||||||
|
return String.format("%s%s%s", NacosConfigUtil.GATEWAY_FLOW_DATA_ID_PREFIX, appName, NacosConfigUtil.GLOBAL_DATA_ID_POSTFIX);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
public static String getSystemRuleDataId(String appName) {
|
public static String getSystemRuleDataId(String appName) {
|
||||||
return String.format("%s%s%s", NacosConfigUtil.SYSTEM_DATA_ID_PREFIX, appName, NacosConfigUtil.GLOBAL_DATA_ID_POSTFIX);
|
return String.format("%s%s%s", NacosConfigUtil.SYSTEM_DATA_ID_PREFIX, appName, NacosConfigUtil.GLOBAL_DATA_ID_POSTFIX);
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -0,0 +1,51 @@
|
||||||
|
package com.alibaba.csp.sentinel.dashboard.rule.nacos;
|
||||||
|
|
||||||
|
import com.alibaba.fastjson.JSONObject;
|
||||||
|
import org.springframework.boot.context.properties.ConfigurationProperties;
|
||||||
|
import org.springframework.context.annotation.Configuration;
|
||||||
|
|
||||||
|
@Configuration
|
||||||
|
@ConfigurationProperties(prefix = "nacos.config")
|
||||||
|
public class NacosServerConfig {
|
||||||
|
private String serverAddr;
|
||||||
|
private String namespace;
|
||||||
|
private String username;
|
||||||
|
private String password;
|
||||||
|
|
||||||
|
public String getServerAddr() {
|
||||||
|
return serverAddr;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setServerAddr(String serverAddr) {
|
||||||
|
this.serverAddr = serverAddr;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getNamespace() {
|
||||||
|
return namespace;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setNamespace(String namespace) {
|
||||||
|
this.namespace = namespace;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getUsername() {
|
||||||
|
return username;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setUsername(String username) {
|
||||||
|
this.username = username;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getPassword() {
|
||||||
|
return password;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setPassword(String password) {
|
||||||
|
this.password = password;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public String toString() {
|
||||||
|
return JSONObject.toJSONString(this);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
@ -2,32 +2,27 @@
|
||||||
server.servlet.encoding.force=true
|
server.servlet.encoding.force=true
|
||||||
server.servlet.encoding.charset=UTF-8
|
server.servlet.encoding.charset=UTF-8
|
||||||
server.servlet.encoding.enabled=true
|
server.servlet.encoding.enabled=true
|
||||||
|
|
||||||
#cookie name setting
|
#cookie name setting
|
||||||
server.servlet.session.cookie.name=sentinel_dashboard_cookie
|
server.servlet.session.cookie.name=sentinel_dashboard_cookie
|
||||||
|
|
||||||
#logging settings
|
#logging settings
|
||||||
logging.level.org.springframework.web=INFO
|
logging.level.org.springframework.web=INFO
|
||||||
logging.file.name=${user.home}/logs/csp/sentinel-dashboard.log
|
logging.file.name=${user.home}/logs/csp/sentinel-dashboard.log
|
||||||
logging.pattern.file= %d{yyyy-MM-dd HH:mm:ss} [%thread] %-5level %logger{36} - %msg%n
|
logging.pattern.file=%d{yyyy-MM-dd HH:mm:ss} [%thread] %-5level %logger{36} - %msg%n
|
||||||
#logging.pattern.console= %d{yyyy-MM-dd HH:mm:ss} [%thread] %-5level %logger{36} - %msg%n
|
#logging.pattern.console= %d{yyyy-MM-dd HH:mm:ss} [%thread] %-5level %logger{36} - %msg%n
|
||||||
|
|
||||||
#auth settings
|
#auth settings
|
||||||
auth.filter.exclude-urls=/,/auth/login,/auth/logout,/registry/machine,/version
|
auth.filter.exclude-urls=/,/auth/login,/auth/logout,/registry/machine,/version
|
||||||
auth.filter.exclude-url-suffixes=htm,html,js,css,map,ico,ttf,woff,png
|
auth.filter.exclude-url-suffixes=htm,html,js,css,map,ico,ttf,woff,png
|
||||||
# If auth.enabled=false, Sentinel console disable login
|
# If auth.enabled=false, Sentinel console disable login
|
||||||
auth.username=sentinel
|
auth.username=admin
|
||||||
auth.password=sentinel
|
auth.password=admin
|
||||||
|
|
||||||
# Inject the dashboard version. It's required to enable
|
# Inject the dashboard version. It's required to enable
|
||||||
# filtering in pom.xml for this resource file.
|
# filtering in pom.xml for this resource file.
|
||||||
sentinel.dashboard.version=@project.version@
|
sentinel.dashboard.version=@project.version@
|
||||||
|
|
||||||
##############################################################
|
##############################################################
|
||||||
# nacos config
|
# nacos config
|
||||||
#nacos.config.server-addr=http://127.0.0.1:8848
|
#nacos.config.server-addr=http://127.0.0.1:8848
|
||||||
nacos.config.server-addr=http://172.16.8.70:8848
|
nacos.config.server-addr=http://172.16.8.70:8848
|
||||||
nacos.config.namespace=
|
nacos.config.namespace=namespace-sentinel
|
||||||
nacos.config.username=nacos
|
nacos.config.username=nacos
|
||||||
nacos.config.password=nacos
|
nacos.config.password=nacos
|
||||||
##############################################################
|
##############################################################
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue