Membuat Circuit Breaker menggunakan Netflix Hystrix

Spring Cloud Netflix Hystrix digunakan untuk memeberikan fallback apabila terjadi kegagalan saat request antar service dengan cara melakukan Load Balancing.

Defending API from failure by bringing callback

Sebelumnya kita telah membuat eureka server. Sekarang kita akan coba mendefend API kita yang tedapat pada aplikasi other-eureka-client. Berikut konfigurasi pada client kedua.
Tambahkan dependency spring-cloud-starter-hystrix.
Tambahkan anotasi @EnableCircuitBreaker pada main class.
Tambahkan anotasi @HystrixCommand pada API yang ingin di fallback. Tambahkan parameter fallbackMethod di dalam command tersebut. Valuenya merujuk pada nama methode yang berisi string yang akan ditampilkan saat fallback.
Java
Copy
///Berikut contoh controller APInya @RequestMapping("/api/halo") @HystrixCommand(fallbackMethod = "fallback") public String halo(){ return restTemplate.getForObject("http://eureka-client/api/halo",String.class); } ///Berikut contoh method yang akan menampilkan string fallback public String fallback(Throwable hystrixCommand){ return "Fallback Halo"; }
Set berapa milisecond lantency untuk metrigger fallback
YAML
Copy
hystrix: command: default: execution: isolation: thread: timeoutInMilliseconds: 10000
Apabila request dari other-eureka-client ke eureka-client sukses makan akan tampil String seperti “Halo ini dari Client Satu”. Sedangkan apabila gagal maka akan tampil String seperti “Fallback Halo”.