开发者社区 > 云原生 > 中间件 > 正文

Sentinel的除网关外的资源可以支持到通配的么?

Sentinel的除网关外的资源可以支持到通配的么?

展开
收起
cuicuicuic 2023-11-05 16:19:46 72 0
3 条回答
写回答
取消 提交回答
  • 这个需求最近在社区有相关的issue和pr,可以一起看下,交流下具体的需求和场景,此回答整理自钉群“Sentinel开源讨论群”

    2023-11-07 23:43:15
    赞同 展开评论 打赏
  • Sentinel是SpringCloud Alibaba提供的微服务组件,能够从流量控制、熔断降级、系统负载保护等多个维度保护服务的稳定性。然而,根据现有的信息,没有明确指出Sentinel的资源除了网关外是否支持通配符。在使用Sentinel的过程中,您可以通过定义资源并配置blockHandler和fallback函数来进行限流之后的处理。但是,这并未涉及到对通配符的支持。

    2023-11-06 10:56:17
    赞同 展开评论 打赏
  • 是的,Sentinel 不仅支持网关模式,也支持非网关模式。在非网关模式下,Sentinel 可以监控应用程序内部的各种资源,如方法调用、HTTP 请求等等。这些资源可以用字符串表示,也可以用正则表达式表示,因此可以实现通配符匹配。
    例如,您可以定义一个规则来保护 "/api/**" 下的所有资源:

    List<FlowRule> rules = new ArrayList<>();
    FlowRule rule = new FlowRule();
    rule.setResource("/api/**");
    rule.setGrade(RuleConstant.FLOW_GRADE_QPS);
    rule.setCount(10);
    rules.add(rule);
    FlowRuleManager.loadRules(rules);
    

    在这个例子中,"/api/**" 表示所有以 "/api/" 开头并且后面跟着任意数量字符的 URL。这样,无论请求的具体路径是什么,只要它符合这个模式,都会受到 Sentinel 的保护。
    需要注意的是,由于 Sentinel 内部的资源标识是基于 String 类型的,因此在使用通配符表达式的时候,必须注意字符串匹配的开销可能会比较大。

    2023-11-05 17:10:45
    赞同 1 展开评论 打赏
问答分类:
问答地址:

为企业提供高效、稳定、易扩展的中间件产品。

相关电子书

更多
阿里云容器 AHAS Sentinel 网关流控揭秘 立即下载
workshop专场-微服务专场-开发者动手实践营-微服务-使用Sentinel进行微服务流量控制 立即下载
Sentinel分布式系统下的流量防卫兵 立即下载