sentinel数据持久化mysql_sentinel dashboard 持久化规则,监控数据+nacos和mysql

com.alibaba.csp

sentinel-datasource-nacos

原来的test去掉

自定义规则数据持久化

将项目测试下面的代码移动到正式代码里。如

添加com.taobao.csp.sentinel.dashboard.config.NacosConfig的配置

@Bean

public Converter> systemRuleEntityDecoder() {

return s -> JSON.parseArray(s, SystemRuleEntity.class);

}

@Bean

public ConfigService nacosConfigService() throws Exception {

Properties properties = new Properties();

properties.put("serverAddr",address);

//      命名空间暂时不用,还是使用默认的public,

// 因为客服端sentinel-datasource-nacos的jar包目前只能设置地址,还不能设置命名空间

//       properties.put("namespace","938ed9f5-b24b-4491-a41c-a2560dc42919");

return ConfigFactory.createConfigService(properties);

}

添加com.taobao.csp.sentinel.dashboard.config.NacosConfigUtil的配置

主要是一些静态属性添加,目前添加了限流文件和系统规则文件。

持久化限流规则接口重新实现

a)   推送数据

@Component("flowRuleNacosPublisher")

public class FlowRuleNacosPublisher implements DynamicRulePublisher> {

@Autowired

private ConfigService configService;

@Autowired

private Converter>,String> convert;

@Override

public void publish(String app, List rules) throws Exception {

AssertUtil.notEmpty(app, "app name cannot be empty");

if (rules == null) {

return;

}

List> ruleList= new ArrayList<>();

rules.forEach(obj->{

Map map = new HashMap<>();

map.put("resource",obj.getResource());

map.put("controlBehavior",obj.getControlBehavior());

map.put("count",obj.getCount());

map.put("grade",obj.getGrade());

map.put("limitApp",obj.getLimitApp());

map.put("strategy",obj.getStrategy());

ruleList.add(map);

});

configService.publishConfig(app+NacosConfigUtil.FLOW_DATA_ID_POSTFIX,NacosConfigUtil.GROUP_ID,convert.convert(ruleList));

}

}

b)   从nacos获取数据

@Component("flowRuleNacosProvider")

public class FlowRuleNacosProvider implements DynamicRuleProvider> {

@Autowired

private ConfigService configService;

@Autowired

private Converter> converter;

@Override

public List getRules(String appName) throws Exception {

String rules = configService.getConfig(appName + NacosConfigUtil.FLOW_DATA_ID_POSTFIX,

NacosConfigUtil.GROUP_ID, 3000);

if (StringUtil.isEmpty(rules)) {

return new ArrayList<>();

}

return converter.convert(rules);

}

}

c)   修改com.taobao.csp.sentinel.dashboard.view.FlowControllerV2

系统规则的修改与上面限流规则修改差多。

系统监控的数据持久化采(采用mysql+jpa)

1)   添mysql和jpa所需要的jar包

mysql

mysql-connector-java

8.0.11

org.springframework.boot

spring-boot-starter-data-jpa

2.0.4.RELEASE

2)   application.properties文件的修改

spring.datasource.url=jdbc:mysql://localh

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值