Hystrix基礎之服務熔斷演示
阿新 • • 發佈:2021-01-25
Hystrix基礎之服務熔斷演示
前言
- 進行服務熔斷之前,請務必確保本地有服務降級演示的程式碼,為了演示方便本次以
hystrix-client8011
一個專案進行操作,不在啟動Eureka叢集。服務降級演示環境
服務熔斷
-
hystrix-client8011
服務新增介面及業務類public interface UserServiceInter { String success(String userId); String timeOut(String userId); /** *熔斷演示介面 */
@Service public class UserServiceInterImpl implements UserServiceInter { /** * circuitBreaker.enabled:是否開啟斷路器 * circuitBreaker.requestVolumeThreshold:請求次數 * circuitBreaker.sleepWindowInMilliseconds:時間視窗期 * circuitBreaker.errorThresholdPercentage:失敗率 * 一句話說明白:斷路器開啟的情況下,如果介面在10秒內有10次請求, * 但這10次請求其中有半數以上都失敗了,那麼斷路器跳閘並熔斷該方法 * 此時正確的請求也不會呼叫到該方法了,而是直接走降級的方法 * 過一段時間發現請求都正常了,斷路器會慢慢的開啟放行一些請求,直到完全開啟! * 更多屬性可以參考:HystrixPropertiesManager類 */
-
Controller增加請求資源
@RestController @Slf4j public class TestController { @Value("${server.port}") private String port; @Autowired private UserServiceInter userServiceInter; @GetMapping(value = "service/breaker/{id}") public String breaker(@PathVariable("id") Integer id){ return userServiceInter.breaker(id); }
-
效果如下
-
這裡只做基本的入門介紹,更多詳細細節請參看官網Hystrix官網介紹