1.下载sentinel源码GitHub - alibaba/Sentinel: A powerful flow control component enabling reliability, resilience and monitoring for microservices. (面向云原生微服务的高可用流控防护组件)下载地址: https://github.com/alibaba/Sentinel
2.修改pom依赖
如上图,将<scope>test</scope> 删除掉
3.修改application.properites
添加上面的配置,nacos配置中心地址
port:端口,sentinel dashboard访问端口
4.将test下的rule下的nacos复制到main中
复制地方:
复制目标粘贴位置
5.修改复制过来的NacosConfig内容
以上是使用之处,上面是我使用了命名空间,使用原本代码(上面注释掉的方法无法解决),所以我只能在这里修改,添加了namespace
5.将CacosConfigUtil中GROUP_ID 和 FLOW_DAGTA_ID_POSTFIX 修改为自己使用的组别和dataid后缀,否则无法匹配。
6、修改FlowControllerV1 内容
将 sentinelApiClient.fetchFlowRuleOfMachine(app, ip, port);更换为
List<FlowRuleEntity> rules = ruleProvider.getRules(app);
将 List<FlowRuleEntity> rules = repository.findAllByMachine(MachineInfo.of(app, ip, port)); return sentinelApiClient.setFlowRuleOfMachineAsync(app, ip, port, rules);
更换为
List<FlowRuleEntity> rules = repository.findAllByApp(app); rulePublisher.publish(app,rules);
7.更换FlowControllerV2
8.万事俱备,只待启动。
启动后再sentinel dashboard中添加流控规则,nacos中会在对应的位置出现规则,特别要注意group和namespace 一 一对应。