Procházet zdrojové kódy

Update resource classification in SentinelWebFluxFilter and improve reactor EntryConfig

Signed-off-by: Eric Zhao <sczyh16@gmail.com>
master
Eric Zhao před 5 roky
rodič
revize
275041403d
2 změnil soubory, kde provedl 9 přidání a 2 odebrání
  1. +4
    -0
      sentinel-adapter/sentinel-reactor-adapter/src/main/java/com/alibaba/csp/sentinel/adapter/reactor/EntryConfig.java
  2. +5
    -2
      sentinel-adapter/sentinel-spring-webflux-adapter/src/main/java/com/alibaba/csp/sentinel/adapter/spring/webflux/SentinelWebFluxFilter.java

+ 4
- 0
sentinel-adapter/sentinel-reactor-adapter/src/main/java/com/alibaba/csp/sentinel/adapter/reactor/EntryConfig.java Zobrazit soubor

@@ -47,6 +47,10 @@ public class EntryConfig {
this(resourceName, entryType, 1, new Object[0], contextConfig);
}

public EntryConfig(String resourceName, int resourceType, EntryType entryType, ContextConfig contextConfig) {
this(resourceName, resourceType, entryType, 1, new Object[0], contextConfig);
}

public EntryConfig(String resourceName, EntryType entryType, int acquireCount, Object[] args) {
this(resourceName, entryType, acquireCount, args, null);
}


+ 5
- 2
sentinel-adapter/sentinel-spring-webflux-adapter/src/main/java/com/alibaba/csp/sentinel/adapter/spring/webflux/SentinelWebFluxFilter.java Zobrazit soubor

@@ -18,6 +18,7 @@ package com.alibaba.csp.sentinel.adapter.spring.webflux;
import java.util.Optional;

import com.alibaba.csp.sentinel.EntryType;
import com.alibaba.csp.sentinel.ResourceTypeConstants;
import com.alibaba.csp.sentinel.adapter.reactor.ContextConfig;
import com.alibaba.csp.sentinel.adapter.reactor.EntryConfig;
import com.alibaba.csp.sentinel.adapter.reactor.SentinelReactorTransformer;
@@ -45,7 +46,8 @@ public class SentinelWebFluxFilter implements WebFilter {
if (StringUtil.isEmpty(finalPath)) {
return chain.filter(exchange);
}
return chain.filter(exchange).transform(buildSentinelTransformer(exchange, finalPath));
return chain.filter(exchange)
.transform(buildSentinelTransformer(exchange, finalPath));
}

private SentinelReactorTransformer<Void> buildSentinelTransformer(ServerWebExchange exchange, String finalPath) {
@@ -53,7 +55,8 @@ public class SentinelWebFluxFilter implements WebFilter {
.map(f -> f.apply(exchange))
.orElse(EMPTY_ORIGIN);

return new SentinelReactorTransformer<>(new EntryConfig(finalPath, EntryType.IN, new ContextConfig(finalPath, origin)));
return new SentinelReactorTransformer<>(new EntryConfig(finalPath, ResourceTypeConstants.COMMON_WEB,
EntryType.IN, new ContextConfig(finalPath, origin)));
}

private static final String EMPTY_ORIGIN = "";


Načítá se…
Zrušit
Uložit