springcloud?feign集成hystrix方式
更新時間:2023年08月28日 10:17:41 作者:lipengxs
這篇文章主要介紹了springcloud?feign集成hystrix方式,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
本章介紹feign集成hystrix
1、增加pom依賴`
<dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-netflix-hystrix</artifactId> </dependency>
2、啟動類中增加注解
@EnableHystrix
3、增加feign接口fallback以及相關配置
DemoService
@ConditionalOnProperty(name = "app.host.abcurl")
@FeignClient(value = "demo-service", url = "${app.host.abcurl}" ,fallback = DemoServiceFallbackImpl .class)
public interface DemoService {
@GetMapping("/v1/api/getCateData")
ApiResponse<Page<Object>> getCateData(@RequestParam Map<String,String> params);
@GetMapping("/v1/api/getProductData")
ApiResponse<Page<Detail>> getProductData(@RequestParam Map<String,String> params);
}DemoServiceFallbackImpl
@Slf4j
@Component
public class DemoServiceFallbackImpl implements DemoService {
@Override
public ApiResponse<Page<Object>> getCateData (Map<String, String> params) {
log.warn("DemoServiceFallbackImpl getCateData fail");
return null;
}
@Override
public ApiResponse<Page<Detail>> getProductData(Map<String, String> params) {
log.warn("DemoServiceFallbackImpl getProductData fail");
return null;
}
}4、增加yml相關配置
feign:
httpclient:
enabled: true
hystrix:
enabled: true
hystrix:
command:
default:
execution:
timeout:
enabled: true
isolation:
thread:
timeoutInMilliseconds: 1000 //該配置需要比ribbon超時時間長
circuitBreaker:
requestVolumeThreshold: 1000
threadpool:
default:
coreSize: 60
maxQueueSize: 200
queueSizeRejectionThreshold: 200
ribbon:
ReadTimeout: 500
ConnectTimeout: 500
ExecTimeout: 500
MaxAutoRetries: 1 //最好設置超時重試這里如果需要查看hystrix監(jiān)控,可以集成Hystrix Dashboard,詳情參考
下圖是我集成grafana 、prometheus的監(jiān)控圖


總結
以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關文章
Eclipse中實現(xiàn)JS代碼提示功能(圖文教程)
本文通過圖文并茂的形式給大家介紹了Eclipse中實現(xiàn)JS代碼提示功能,非常不錯,具有參考借鑒價值,需要的朋友參考下吧2017-11-11
RocketMQ特性Broker存儲事務消息實現(xiàn)
這篇文章主要為大家介紹了RocketMQ特性Broker存儲事務消息實現(xiàn)詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪2022-08-08
SpringBoot多數(shù)據(jù)源配置的全過程記錄
在用SpringBoot開發(fā)項目時,隨著業(yè)務量的擴大,我們通常會進行數(shù)據(jù)庫拆分或是引入其他數(shù)據(jù)庫,從而我們需要配置多個數(shù)據(jù)源,下面這篇文章主要給大家介紹了關于SpringBoot多數(shù)據(jù)源配置的相關資料,需要的朋友可以參考下2021-11-11
詳解java CountDownLatch和CyclicBarrier在內(nèi)部實現(xiàn)和場景上的區(qū)別
這篇文章主要介紹了詳解java CountDownLatch和CyclicBarrier在內(nèi)部實現(xiàn)和場景上的區(qū)別,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧2020-05-05
Java實戰(zhàn)之基于TCP實現(xiàn)簡單聊天程序
這篇文章主要為大家詳細介紹了如何在Java中基于TCP實現(xiàn)簡單聊天程序,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下2022-03-03

