fix feign name bug

pull/913/head
seanyu 3 years ago
parent 4ee01f051e
commit d0092cfdd5

@ -74,7 +74,7 @@ public class PolarisFeignCircuitBreakerInvocationHandler implements InvocationHa
return toString(); return toString();
} }
String circuitName = circuitBreakerNameResolver.resolveCircuitBreakerName(feignClientName, target, method); String circuitName = circuitBreakerNameResolver.resolveCircuitBreakerName(target.name(), 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;

@ -26,7 +26,7 @@ import org.springframework.web.bind.annotation.GetMapping;
* *
* @author sean yu * @author sean yu
*/ */
@FeignClient(name = "polaris-circuitbreaker-callee-service", contextId = "use-polaris-fallback") @FeignClient(name = "polaris-circuitbreaker-callee-service", contextId = "fallback-from-polaris")
public interface ProviderB { public interface ProviderB {
/** /**

@ -3,7 +3,7 @@ package com.tencent.cloud.polaris.circuitbreaker.feign.example;
import org.springframework.cloud.openfeign.FeignClient; import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.GetMapping;
@FeignClient(name = "polaris-circuitbreaker-callee-service", contextId = "use-code-fallback", fallback = ProviderBFallback.class) @FeignClient(name = "polaris-circuitbreaker-callee-service", contextId = "fallback-from-code", fallback = ProviderBFallback.class)
public interface ProviderBWithFallback { public interface ProviderBWithFallback {
/** /**

@ -42,8 +42,8 @@ public class ServiceAController {
* Get info of Service B by Feign. * Get info of Service B by Feign.
* @return info of Service B * @return info of Service B
*/ */
@GetMapping("/getBServiceInfo/fallbackFromLocalCode") @GetMapping("/getBServiceInfo/fallbackFromCode")
public String getBServiceInfoFallbackFromLocalCode() { public String getBServiceInfoFallbackFromCode() {
return providerBWithFallback.info(); return providerBWithFallback.info();
} }

@ -41,12 +41,12 @@ public class ServiceAController {
private RestTemplate defaultRestTemplate; private RestTemplate defaultRestTemplate;
@Autowired @Autowired
@Qualifier("fallbackRestTemplate") @Qualifier("restTemplateFallbackFromPolaris")
private RestTemplate fallbackRestTemplate; private RestTemplate restTemplateFallbackFromPolaris;
@Autowired @Autowired
@Qualifier("fallbackClassRestTemplate") @Qualifier("restTemplateFallbackFromCode")
private RestTemplate fallbackClassRestTemplate; private RestTemplate restTemplateFallbackFromCode;
@Autowired @Autowired
private CircuitBreakerFactory circuitBreakerFactory; private CircuitBreakerFactory circuitBreakerFactory;
@ -61,14 +61,14 @@ public class ServiceAController {
); );
} }
@GetMapping("/getBServiceInfo/fallback") @GetMapping("/getBServiceInfo/fallbackFromPolaris")
public ResponseEntity<String> getBServiceInfoFallback() { public ResponseEntity<String> getBServiceInfoFallback() {
return fallbackRestTemplate.getForEntity("/example/service/b/info", String.class); return restTemplateFallbackFromPolaris.getForEntity("/example/service/b/info", String.class);
} }
@GetMapping("/getBServiceInfo/fallbackClass") @GetMapping("/getBServiceInfo/fallbackFromCode")
public ResponseEntity<String> getBServiceInfoFallbackClass() { public ResponseEntity<String> getBServiceInfoFallbackClass() {
return fallbackClassRestTemplate.getForEntity("/example/service/b/info", String.class); return restTemplateFallbackFromCode.getForEntity("/example/service/b/info", String.class);
} }
} }

@ -56,7 +56,7 @@ public class ServiceAResTemplate {
@Bean @Bean
@LoadBalanced @LoadBalanced
@PolarisCircuitBreakerRestTemplate @PolarisCircuitBreakerRestTemplate
public RestTemplate fallbackRestTemplate() { public RestTemplate restTemplateFallbackFromPolaris() {
DefaultUriBuilderFactory uriBuilderFactory = new DefaultUriBuilderFactory("http://polaris-circuitbreaker-callee-service"); DefaultUriBuilderFactory uriBuilderFactory = new DefaultUriBuilderFactory("http://polaris-circuitbreaker-callee-service");
RestTemplate restTemplate = new RestTemplate(); RestTemplate restTemplate = new RestTemplate();
restTemplate.setUriTemplateHandler(uriBuilderFactory); restTemplate.setUriTemplateHandler(uriBuilderFactory);
@ -66,7 +66,7 @@ public class ServiceAResTemplate {
@Bean @Bean
@LoadBalanced @LoadBalanced
@PolarisCircuitBreakerRestTemplate(fallbackClass = CustomPolarisCircuitBreakerFallback.class) @PolarisCircuitBreakerRestTemplate(fallbackClass = CustomPolarisCircuitBreakerFallback.class)
public RestTemplate fallbackClassRestTemplate() { public RestTemplate restTemplateFallbackFromCode() {
DefaultUriBuilderFactory uriBuilderFactory = new DefaultUriBuilderFactory("http://polaris-circuitbreaker-callee-service"); DefaultUriBuilderFactory uriBuilderFactory = new DefaultUriBuilderFactory("http://polaris-circuitbreaker-callee-service");
RestTemplate restTemplate = new RestTemplate(); RestTemplate restTemplate = new RestTemplate();
restTemplate.setUriTemplateHandler(uriBuilderFactory); restTemplate.setUriTemplateHandler(uriBuilderFactory);

Loading…
Cancel
Save