1、開啟多個Eureka Client服務(wù)實例
2次询、修改Ribbon項目:
①彰檬、在Ribbon項目中添加spring-cloud-starter-hystrix依賴
②、在Ribbon項目啟動類中添加@EnableCircuitBreaker注解開啟斷路器功能
③帆离、在服務(wù)消費端的Service中添加@HystrixCommand注解來指定回調(diào)方法
④蔬蕊、創(chuàng)建請求命令:
1、同步執(zhí)行
2哥谷、異步執(zhí)行:重新定義實現(xiàn)
兩者皆發(fā)射一次observable
⑤岸夯、定義服務(wù)降級:
使用@HystrixCommand中的fallbackMethod參數(shù)指定具體實現(xiàn)服務(wù)降級的方法
⑥、異常處理:
異常的獲取——只要在fallback實現(xiàn)方法中增加Throwable e對象的定義
⑦们妥、命令名稱猜扮、分組和線程池劃分:
1、命令名稱:commandKey
2监婶、分組:groupKey
3旅赢、線程池劃分:threadPoolKey
Hystrix會根據(jù)命令組組織信息統(tǒng)計
⑧齿桃、請求緩存:
1、@CacheResult:用來標(biāo)記請求命令的結(jié)果應(yīng)該被緩存煮盼,與@HystrixCommand注解結(jié)合使用
2短纵、@CacheRemove:用來讓請求命令的緩存失效,失效的緩存根據(jù)定義的key決定
3僵控、@CacheKey:用來在請求的參數(shù)上標(biāo)記香到,使其作為緩存的Key值,如果沒有標(biāo)注則會使用所有參數(shù)
4报破、定義緩存Key:通過@CacheResult和@CacheRemove的cacheKeyMethod方法指定具體的生成函數(shù)
⑨悠就、緩存清理:
@CacheRemove中的CommandKey是必須的,指定請求緩存的請求命令
⑩充易、請求合并:
Hystrix提供了HystrixCollapser來實現(xiàn)請求的合并梗脾,以減少通信消耗和線程數(shù)的占用