2016-12-18 22 views
1

ヒストリックフォールバックメソッドを試しています。 localhost:8082では、customer-serviceが実行され、顧客の名前が返されます。ヒストリックフォールバックメソッドが呼び出されません

カスタマーサービスが停止している場合は、フォールバックメソッドを呼び出す必要があります。しかし、それは起こっていない。

以下はコードスニペットです。

お勧めします。

@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

実際のメソッドとフォールバックメソッドの両方を公開し、これらのメソッドを別のクラスに移動し、@Componentで注釈を付ける必要があります。

試してみてください。これが役立ちます。

1

あなたの@HystrixCommand注釈付きメソッドはパブリックである必要があります。 フォールバック方法についてはわかりませんが、私はそれも公開するように設定します。

関連する問題