pull/916/head
seanyu 3 years ago
parent dc7eb42782
commit e5257190c1

@ -36,6 +36,7 @@ public class PolarisCircuitBreakerNameResolver implements CircuitBreakerNameReso
@Override @Override
public String resolveCircuitBreakerName(String feignClientName, Target<?> target, Method method) { public String resolveCircuitBreakerName(String feignClientName, Target<?> target, Method method) {
String serviceName = target.name();
RequestMapping requestMapping = findMergedAnnotation(method, RequestMapping.class); RequestMapping requestMapping = findMergedAnnotation(method, RequestMapping.class);
String path = ""; String path = "";
if (requestMapping != null) { if (requestMapping != null) {
@ -44,8 +45,8 @@ public class PolarisCircuitBreakerNameResolver implements CircuitBreakerNameReso
requestMapping.path()[0]; requestMapping.path()[0];
} }
return "".equals(path) ? return "".equals(path) ?
MetadataContext.LOCAL_NAMESPACE + "#" + feignClientName : MetadataContext.LOCAL_NAMESPACE + "#" + serviceName :
MetadataContext.LOCAL_NAMESPACE + "#" + feignClientName + "#" + path; MetadataContext.LOCAL_NAMESPACE + "#" + serviceName + "#" + path;
} }
} }

@ -96,7 +96,7 @@ public class PolarisFeignCircuitBreakerInvocationHandler implements InvocationHa
return toString(); return toString();
} }
String circuitName = circuitBreakerNameResolver.resolveCircuitBreakerName(target.name(), target, method); String circuitName = circuitBreakerNameResolver.resolveCircuitBreakerName(feignClientName, target, method);
CircuitBreaker circuitBreaker = factory.create(circuitName); CircuitBreaker circuitBreaker = factory.create(circuitName);
Supplier<Object> supplier = asSupplier(method, args); Supplier<Object> supplier = asSupplier(method, args);
Function<Throwable, Object> fallbackFunction; Function<Throwable, Object> fallbackFunction;

@ -44,7 +44,8 @@ public @interface PolarisCircuitBreakerRestTemplate {
String fallback() default ""; String fallback() default "";
/** /**
* a fallback Class, will return a PolarisCircuitBreakerHttpResponse when any exception occurs. * a fallback Class, will return a PolarisCircuitBreakerHttpResponse when any exception occurs.
* fallback Class must be a spring bean.
* *
* @return PolarisCircuitBreakerFallback * @return PolarisCircuitBreakerFallback
*/ */

Loading…
Cancel
Save