mirror of
https://gitee.com/mirrors/Spring-Cloud-Alibaba.git
synced 2021-06-26 13:25:11 +08:00
sentinel starter support paramflowrule
This commit is contained in:
parent
29998b3e60
commit
5ee251ab97
@ -71,6 +71,11 @@
|
|||||||
<artifactId>sentinel-core</artifactId>
|
<artifactId>sentinel-core</artifactId>
|
||||||
<version>${sentinel.version}</version>
|
<version>${sentinel.version}</version>
|
||||||
</dependency>
|
</dependency>
|
||||||
|
<dependency>
|
||||||
|
<groupId>com.alibaba.csp</groupId>
|
||||||
|
<artifactId>sentinel-parameter-flow-control</artifactId>
|
||||||
|
<version>${sentinel.version}</version>
|
||||||
|
</dependency>
|
||||||
<dependency>
|
<dependency>
|
||||||
<groupId>com.alibaba.csp</groupId>
|
<groupId>com.alibaba.csp</groupId>
|
||||||
<artifactId>sentinel-datasource-extension</artifactId>
|
<artifactId>sentinel-datasource-extension</artifactId>
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
spring.application.name=service-consumer
|
spring.application.name=service-consumer
|
||||||
server.port=18083
|
server.port=18083
|
||||||
management.endpoints.web.exposure.include=*
|
management.security.enabled=false
|
||||||
spring.cloud.nacos.discovery.server-addr=127.0.0.1:8848
|
spring.cloud.nacos.discovery.server-addr=127.0.0.1:8848
|
||||||
|
|
||||||
feign.sentinel.enabled=true
|
feign.sentinel.enabled=true
|
||||||
|
@ -18,6 +18,13 @@
|
|||||||
<dependency>
|
<dependency>
|
||||||
<groupId>com.alibaba.csp</groupId>
|
<groupId>com.alibaba.csp</groupId>
|
||||||
<artifactId>sentinel-datasource-extension</artifactId>
|
<artifactId>sentinel-datasource-extension</artifactId>
|
||||||
|
<optional>true</optional>
|
||||||
|
</dependency>
|
||||||
|
|
||||||
|
<dependency>
|
||||||
|
<groupId>com.alibaba.csp</groupId>
|
||||||
|
<artifactId>sentinel-parameter-flow-control</artifactId>
|
||||||
|
<optional>true</optional>
|
||||||
</dependency>
|
</dependency>
|
||||||
|
|
||||||
<dependency>
|
<dependency>
|
||||||
|
@ -17,6 +17,7 @@ import com.alibaba.csp.sentinel.slots.block.degrade.DegradeRule;
|
|||||||
import com.alibaba.csp.sentinel.slots.block.degrade.DegradeRuleManager;
|
import com.alibaba.csp.sentinel.slots.block.degrade.DegradeRuleManager;
|
||||||
import com.alibaba.csp.sentinel.slots.block.flow.FlowRule;
|
import com.alibaba.csp.sentinel.slots.block.flow.FlowRule;
|
||||||
import com.alibaba.csp.sentinel.slots.block.flow.FlowRuleManager;
|
import com.alibaba.csp.sentinel.slots.block.flow.FlowRuleManager;
|
||||||
|
import com.alibaba.csp.sentinel.slots.block.flow.param.ParamFlowRule;
|
||||||
import com.alibaba.csp.sentinel.slots.system.SystemRule;
|
import com.alibaba.csp.sentinel.slots.system.SystemRule;
|
||||||
|
|
||||||
import com.fasterxml.jackson.core.JsonProcessingException;
|
import com.fasterxml.jackson.core.JsonProcessingException;
|
||||||
@ -31,6 +32,7 @@ import com.fasterxml.jackson.databind.ObjectMapper;
|
|||||||
* @see DegradeRule
|
* @see DegradeRule
|
||||||
* @see SystemRule
|
* @see SystemRule
|
||||||
* @see AuthorityRule
|
* @see AuthorityRule
|
||||||
|
* @see ParamFlowRule
|
||||||
* @see ObjectMapper
|
* @see ObjectMapper
|
||||||
*/
|
*/
|
||||||
public class JsonConverter implements Converter<String, List<AbstractRule>> {
|
public class JsonConverter implements Converter<String, List<AbstractRule>> {
|
||||||
@ -47,7 +49,7 @@ public class JsonConverter implements Converter<String, List<AbstractRule>> {
|
|||||||
public List<AbstractRule> convert(String source) {
|
public List<AbstractRule> convert(String source) {
|
||||||
List<AbstractRule> ruleList = new ArrayList<>();
|
List<AbstractRule> ruleList = new ArrayList<>();
|
||||||
if (StringUtils.isEmpty(source)) {
|
if (StringUtils.isEmpty(source)) {
|
||||||
logger.info(
|
logger.warn(
|
||||||
"Sentinel JsonConverter can not convert rules because source is empty");
|
"Sentinel JsonConverter can not convert rules because source is empty");
|
||||||
return ruleList;
|
return ruleList;
|
||||||
}
|
}
|
||||||
@ -67,7 +69,7 @@ public class JsonConverter implements Converter<String, List<AbstractRule>> {
|
|||||||
|
|
||||||
List<AbstractRule> rules = Arrays.asList(convertFlowRule(itemJson),
|
List<AbstractRule> rules = Arrays.asList(convertFlowRule(itemJson),
|
||||||
convertDegradeRule(itemJson), convertSystemRule(itemJson),
|
convertDegradeRule(itemJson), convertSystemRule(itemJson),
|
||||||
convertAuthorityRule(itemJson));
|
convertAuthorityRule(itemJson), convertParamFlowRule(itemJson));
|
||||||
|
|
||||||
List<AbstractRule> convertRuleList = new ArrayList<>();
|
List<AbstractRule> convertRuleList = new ArrayList<>();
|
||||||
|
|
||||||
@ -105,8 +107,6 @@ public class JsonConverter implements Converter<String, List<AbstractRule>> {
|
|||||||
throw new RuntimeException(
|
throw new RuntimeException(
|
||||||
"Sentinel JsonConverter convert error: " + e.getMessage(), e);
|
"Sentinel JsonConverter convert error: " + e.getMessage(), e);
|
||||||
}
|
}
|
||||||
logger.info("Sentinel JsonConverter convert {} rules: {}", ruleList.size(),
|
|
||||||
ruleList);
|
|
||||||
return ruleList;
|
return ruleList;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -158,4 +158,15 @@ public class JsonConverter implements Converter<String, List<AbstractRule>> {
|
|||||||
return rule;
|
return rule;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private ParamFlowRule convertParamFlowRule(String json) {
|
||||||
|
ParamFlowRule rule = null;
|
||||||
|
try {
|
||||||
|
rule = objectMapper.readValue(json, ParamFlowRule.class);
|
||||||
|
}
|
||||||
|
catch (Exception e) {
|
||||||
|
// ignore
|
||||||
|
}
|
||||||
|
return rule;
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -17,6 +17,7 @@ import com.alibaba.csp.sentinel.slots.block.degrade.DegradeRule;
|
|||||||
import com.alibaba.csp.sentinel.slots.block.degrade.DegradeRuleManager;
|
import com.alibaba.csp.sentinel.slots.block.degrade.DegradeRuleManager;
|
||||||
import com.alibaba.csp.sentinel.slots.block.flow.FlowRule;
|
import com.alibaba.csp.sentinel.slots.block.flow.FlowRule;
|
||||||
import com.alibaba.csp.sentinel.slots.block.flow.FlowRuleManager;
|
import com.alibaba.csp.sentinel.slots.block.flow.FlowRuleManager;
|
||||||
|
import com.alibaba.csp.sentinel.slots.block.flow.param.ParamFlowRule;
|
||||||
import com.alibaba.csp.sentinel.slots.system.SystemRule;
|
import com.alibaba.csp.sentinel.slots.system.SystemRule;
|
||||||
|
|
||||||
import com.fasterxml.jackson.core.JsonProcessingException;
|
import com.fasterxml.jackson.core.JsonProcessingException;
|
||||||
@ -31,6 +32,7 @@ import com.fasterxml.jackson.dataformat.xml.XmlMapper;
|
|||||||
* @see DegradeRule
|
* @see DegradeRule
|
||||||
* @see SystemRule
|
* @see SystemRule
|
||||||
* @see AuthorityRule
|
* @see AuthorityRule
|
||||||
|
* @see ParamFlowRule
|
||||||
* @see XmlMapper
|
* @see XmlMapper
|
||||||
*/
|
*/
|
||||||
public class XmlConverter implements Converter<String, List<AbstractRule>> {
|
public class XmlConverter implements Converter<String, List<AbstractRule>> {
|
||||||
@ -47,7 +49,7 @@ public class XmlConverter implements Converter<String, List<AbstractRule>> {
|
|||||||
public List<AbstractRule> convert(String source) {
|
public List<AbstractRule> convert(String source) {
|
||||||
List<AbstractRule> ruleList = new ArrayList<>();
|
List<AbstractRule> ruleList = new ArrayList<>();
|
||||||
if (StringUtils.isEmpty(source)) {
|
if (StringUtils.isEmpty(source)) {
|
||||||
logger.info(
|
logger.warn(
|
||||||
"Sentinel XmlConverter can not convert rules because source is empty");
|
"Sentinel XmlConverter can not convert rules because source is empty");
|
||||||
return ruleList;
|
return ruleList;
|
||||||
}
|
}
|
||||||
@ -67,7 +69,7 @@ public class XmlConverter implements Converter<String, List<AbstractRule>> {
|
|||||||
|
|
||||||
List<AbstractRule> rules = Arrays.asList(convertFlowRule(itemXml),
|
List<AbstractRule> rules = Arrays.asList(convertFlowRule(itemXml),
|
||||||
convertDegradeRule(itemXml), convertSystemRule(itemXml),
|
convertDegradeRule(itemXml), convertSystemRule(itemXml),
|
||||||
convertAuthorityRule(itemXml));
|
convertAuthorityRule(itemXml), convertParamFlowRule(itemXml));
|
||||||
|
|
||||||
List<AbstractRule> convertRuleList = new ArrayList<>();
|
List<AbstractRule> convertRuleList = new ArrayList<>();
|
||||||
|
|
||||||
@ -104,8 +106,6 @@ public class XmlConverter implements Converter<String, List<AbstractRule>> {
|
|||||||
throw new RuntimeException(
|
throw new RuntimeException(
|
||||||
"Sentinel XmlConverter convert error: " + e.getMessage(), e);
|
"Sentinel XmlConverter convert error: " + e.getMessage(), e);
|
||||||
}
|
}
|
||||||
logger.info("Sentinel XmlConverter convert {} rules: {}", ruleList.size(),
|
|
||||||
ruleList);
|
|
||||||
return ruleList;
|
return ruleList;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -157,4 +157,15 @@ public class XmlConverter implements Converter<String, List<AbstractRule>> {
|
|||||||
return rule;
|
return rule;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private ParamFlowRule convertParamFlowRule(String json) {
|
||||||
|
ParamFlowRule rule = null;
|
||||||
|
try {
|
||||||
|
rule = xmlMapper.readValue(json, ParamFlowRule.class);
|
||||||
|
}
|
||||||
|
catch (Exception e) {
|
||||||
|
// ignore
|
||||||
|
}
|
||||||
|
return rule;
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -42,6 +42,11 @@
|
|||||||
<optional>true</optional>
|
<optional>true</optional>
|
||||||
</dependency>
|
</dependency>
|
||||||
|
|
||||||
|
<dependency>
|
||||||
|
<groupId>com.alibaba.csp</groupId>
|
||||||
|
<artifactId>sentinel-parameter-flow-control</artifactId>
|
||||||
|
</dependency>
|
||||||
|
|
||||||
<dependency>
|
<dependency>
|
||||||
<groupId>org.springframework.cloud</groupId>
|
<groupId>org.springframework.cloud</groupId>
|
||||||
<artifactId>spring-cloud-alibaba-sentinel-datasource</artifactId>
|
<artifactId>spring-cloud-alibaba-sentinel-datasource</artifactId>
|
||||||
|
@ -31,6 +31,8 @@ import com.alibaba.csp.sentinel.slots.block.degrade.DegradeRule;
|
|||||||
import com.alibaba.csp.sentinel.slots.block.degrade.DegradeRuleManager;
|
import com.alibaba.csp.sentinel.slots.block.degrade.DegradeRuleManager;
|
||||||
import com.alibaba.csp.sentinel.slots.block.flow.FlowRule;
|
import com.alibaba.csp.sentinel.slots.block.flow.FlowRule;
|
||||||
import com.alibaba.csp.sentinel.slots.block.flow.FlowRuleManager;
|
import com.alibaba.csp.sentinel.slots.block.flow.FlowRuleManager;
|
||||||
|
import com.alibaba.csp.sentinel.slots.block.flow.param.ParamFlowRule;
|
||||||
|
import com.alibaba.csp.sentinel.slots.block.flow.param.ParamFlowRuleManager;
|
||||||
import com.alibaba.csp.sentinel.slots.system.SystemRule;
|
import com.alibaba.csp.sentinel.slots.system.SystemRule;
|
||||||
import com.alibaba.csp.sentinel.slots.system.SystemRuleManager;
|
import com.alibaba.csp.sentinel.slots.system.SystemRuleManager;
|
||||||
|
|
||||||
@ -60,10 +62,12 @@ public class SentinelEndpoint extends AbstractEndpoint<Map<String, Object>> {
|
|||||||
List<FlowRule> flowRules = FlowRuleManager.getRules();
|
List<FlowRule> flowRules = FlowRuleManager.getRules();
|
||||||
List<DegradeRule> degradeRules = DegradeRuleManager.getRules();
|
List<DegradeRule> degradeRules = DegradeRuleManager.getRules();
|
||||||
List<SystemRule> systemRules = SystemRuleManager.getRules();
|
List<SystemRule> systemRules = SystemRuleManager.getRules();
|
||||||
|
List<ParamFlowRule> paramFlowRules = ParamFlowRuleManager.getRules();
|
||||||
result.put("properties", sentinelProperties);
|
result.put("properties", sentinelProperties);
|
||||||
result.put("FlowRules", flowRules);
|
result.put("FlowRules", flowRules);
|
||||||
result.put("DegradeRules", degradeRules);
|
result.put("DegradeRules", degradeRules);
|
||||||
result.put("SystemRules", systemRules);
|
result.put("SystemRules", systemRules);
|
||||||
|
result.put("ParamFlowRule", paramFlowRules);
|
||||||
result.put("datasources", new HashMap<String, Object>());
|
result.put("datasources", new HashMap<String, Object>());
|
||||||
|
|
||||||
for (String dataSourceBeanName : dataSourceHandler.getDataSourceBeanNameList()) {
|
for (String dataSourceBeanName : dataSourceHandler.getDataSourceBeanNameList()) {
|
||||||
|
Loading…
x
Reference in New Issue
Block a user