gateway网关集成Sentinel后,控制台默认限流是根据服务进行的,默认为资源名为ReactiveCompositeDiscoveryClient_服务名称,如下图:
所以限流都是根据整个服务进行的,那么如何像单机一样根据url分组限流呢;有两种方式:
1.通过初始化配置:
@Configuration
public class SentinelInitUrlConfig {
@PostConstruct
public void doInit() {
loadApiDefinitions();
}
public void loadApiDefinitions() {
Set<ApiDefinition> apiDefinitions = GatewayApiDefinitionManager.getApiDefinitions();
ApiDefinition api = new ApiDefinition("分组")
.setPredicateItems(new HashSet<ApiPredicateItem>() {
{
add(new ApiPathPredicateItem().setPattern("/auth/*")
//参数值的匹配策略
// 精确匹配(PARAM_MATCH_STRATEGY_EXACT)