2016-12-18 13 views
1

hystrix 대체 방법을 시도 중입니다. localhost : 8082에서 고객 이름을 반환하는 고객 서비스가 실행 중입니다.Hystrix 대체 방법이 호출되지 않습니다.

고객 서비스가 중단 된 경우 대체 방법이 호출되어야합니다. 그러나 그것은 일어나지 않습니다.

다음은 코드 스 니펫입니다.

좋습니다.

@SpringBootApplication 
@EnableDiscoveryClient 
@EnableCircuitBreaker 
@RestController 
public class DemoHystrixApplication { 

    @GetMapping("/") 
    public String name() { 
     String str = getCustomerName(); 
     return str; 
    } 

    @HystrixCommand(fallbackMethod = "getFallbackCustomerName") 
    private String getCustomerName() { 
     RestTemplate restTemplate = new RestTemplate(); 
     URI uri = URI.create("http://localhost:8082"); 
     return restTemplate.getForObject(uri, String.class); 
    } 

    private String getFallbackCustomerName() { 
     System.out.println("coming inside fallback method"); 
     return "Resillient Customer"; 
    } 

    public static void main(String[] args) { 
     SpringApplication.run(DemoHystrixApplication.class, args); 
    } 
} 

답변

1

실제 및 대체 메소드 모두 public이어야하며이 메소드를 별도의 클래스로 이동하고 @Component로 주석을 추가해야합니다.

시도해보십시오. 도움을 받으시기 바랍니다.

1

@HystrixCommand 주석 메소드는 public이어야합니다. 대체 방법에 대해서는 잘 모르겠지만 공용으로 설정할 것입니다.