开发者社区 > 云原生 > 正文

热点参数流控规则、集群流控规则不支持持久化吗?

我尝试用拉模式实现规则的持久化,相关代码在这里: http://www.itmuch.com/spring-cloud-alibaba/sentinel-rules-persistence-pull-mode/

举个例子:

// 流控规则 ReadableDataSource<String, List> flowRuleRDS = new FileRefreshableDataSource<>( flowRulePath, flowRuleListParser ); FlowRuleManager.register2Property(flowRuleRDS.getProperty()); WritableDataSource<List> flowRuleWDS = new FileWritableDataSource<>( flowRulePath, this::encodeJson ); WritableDataSourceRegistry.registerFlowDataSource(flowRuleWDS);

但 com.alibaba.csp.sentinel.transport.util.WritableDataSourceRegistry 里面只支持

private static WritableDataSource<List<FlowRule>> flowDataSource = null;
private static WritableDataSource<List<AuthorityRule>> authorityDataSource = null;
private static WritableDataSource<List<DegradeRule>> degradeDataSource = null;
private static WritableDataSource<List<SystemRule>> systemSource = null;

没有ParamFlowRule等等其他规则。 所以,ParamFlowRule是不支持用拉模式持久化吗?

我找到了这个Issue,里面有一些讨论:https://github.com/alibaba/Sentinel/issues/414 但没有找到示例代码,能否帮忙解答:

1、是否支持拉模式持久化?

2、如果支持,是否能够帮忙提供一下示例代码?

原提问者GitHub用户eacdy

展开
收起
码字王 2023-05-19 18:35:17 85 0
1 条回答
写回答
取消 提交回答
  • 对于参数流控制,可以通过ModifyParamFlowRulesCommandHandler#setWritableDataSource方法注册WritableSource。

    对于集群流控制(令牌服务器的规则),WritableDataSource不支持(也不推荐)它。

    原回答者GitHub用户sczyh30

    2023-05-19 21:15:35
    赞同 展开评论 打赏
问答分类:
问答地址:

阿里云拥有国内全面的云原生产品技术以及大规模的云原生应用实践,通过全面容器化、核心技术互联网化、应用 Serverless 化三大范式,助力制造业企业高效上云,实现系统稳定、应用敏捷智能。拥抱云原生,让创新无处不在。

相关电子书

更多
低代码开发师(初级)实战教程 立即下载
冬季实战营第三期:MySQL数据库进阶实战 立即下载
阿里巴巴DevOps 最佳实践手册 立即下载