采纳答案成功!
向帮助你的同学说点啥吧!感谢那些助人为乐的人
老师好,我这边持久化的流控规则(与nacos对接的流控规则)已经配置好了,但是访问接口超过阈值时并未触发限流规则。
同样在默认菜单的流控规则里配置的话就有效,这是什么问题呢?
没有生效的原因是因为流控规则使用的是V1版本,老师课程中修改的是V2版本,如果要想流控规则生效并将流控规则持久化到nacos中,需要修改V1版本,也就是com.alibaba.csp.sentinel.dashboard.controller.FlowControllerV1类,修改也很简单,主要修改两部分:
//List<FlowRuleEntity> rules = sentinelApiClient.fetchFlowRuleOfMachine(app, ip, port); // 从nacos中获取流控规则 List<FlowRuleEntity> rules = ruleProvider.getRules(app); if (rules != null && !rules.isEmpty()) { for (FlowRuleEntity entity : rules) { entity.setApp(app); if (entity.getClusterConfig() != null && entity.getClusterConfig().getFlowId() != null) { entity.setId(entity.getClusterConfig().getFlowId()); } } } private CompletableFuture<Void> publishRules(String app, String ip, Integer port) throws Exception { List<FlowRuleEntity> rules = repository.findAllByMachine(MachineInfo.of(app, ip, port)); // 将数据推送至nacos rulePublisher.publish(app, rules); return sentinelApiClient.setFlowRuleOfMachineAsync(app, ip, port, rules); }
注意:这里修改的是V1版本,所以配置的时候使用原来流控规则配置Tab。
这样修改后你再试试,就可以丝滑的实现流控并将规则持久化道nacos了。
是不是同时配置产生冲突了
同学你好,可以紧跟老师的视频中的操作步骤做一次,看看差别是什么。
老师我也是 流控规则同步到了nacos但是没有流控住。而且老师视频里整合完nacos也没有对接口是否真正可以流控做测试
可以按我上面修改的内容试试。
登录后可查看更多问答,登录/注册
深度解读核心组件原理与实践,提升微服务在复杂场景中的落地能力
756 13
3.9k 8
766 6
748 6
881 5