0
点赞
收藏
分享

微信扫一扫

38.网关限流-API分组维度

未定义变量 2021-09-21 阅读 86

自定义API分组

  • 自定义API分组是一种更细粒度的限流规则定义
/**
 * 配置初始化的限流参数
 */
@PostConstruct
public void initGatewayRules(){
    Set<GatewayFlowRule> rules=new HashSet<>();
    rules.add(new GatewayFlowRule("product_api1").setCount(1).setIntervalSec(1));
    rules.add(new GatewayFlowRule("product_api2").setCount(1).setIntervalSec(1));
    GatewayRuleManager.loadRules(rules);
}

/**
 * 自定义API分组
 */
@PostConstruct
private void initCustomizedApis(){
    Set<ApiDefinition> definitions=new HashSet<>();
    ApiDefinition api1=new ApiDefinition("product_api1")
            .setPredicateItems(new HashSet<ApiPredicateItem>(){{
                //以/product-serv/product/api1/** 开头的请求
                add(new ApiPathPredicateItem().setPattern("/product-serv/product/api1/**")
                        .setMatchStrategy(SentinelGatewayConstants.URL_MATCH_STRATEGY_PREFIX));
            }});
    ApiDefinition api2=new ApiDefinition("product_api2")
            .setPredicateItems(new HashSet<ApiPredicateItem>(){{
                //以/product-serv/product/api2/demo1 完成的url路径匹配
                add(new ApiPathPredicateItem().setPattern("/product-serv/product/api2/demo1"));
            }});
    definitions.add(api1);
    definitions.add(api2);
    GatewayApiDefinitionManager.loadApiDefinitions(definitions);
}
举报

相关推荐

0 条评论