spring cloud hystrix 超時時間使用方式詳解
我們在使用后臺微服務(wù)的時候,各個服務(wù)之前會有很多請求和交叉業(yè)務(wù)。這里會引起雪崩、超時等異常處理。SpringCloud Hystrix服務(wù)降級、容錯機(jī)治理使 hystrix 有很好的支持,引入后實(shí)現(xiàn)斷路器功能。
1:pom 引入jar包
<dependency><groupId>org.springframework.cloud</groupId><artifactId>spring-cloud-starter-netflix-hystrix</artifactId> </dependency>
2:添加注解
Application中增加 @EnableCircuitBreaker 開啟hystrix功能
3:配置文件配置
注意:feign中的hystrix的enabled屬性要設(shè)置true
hystrix: command: transferApprove: # 這里是要設(shè)置超時時間的方法,如新增其他方法需要增加此節(jié)點(diǎn)信息。 execution: isolation: thread: timeoutInMilliseconds: 6000 #默認(rèn)連接超時時間是1秒
4:增加代碼
代碼注意fastOrBatchFallback的出參和入?yún)⒁驮O(shè)置了@HystrixCommand注解方法一致,否則會拋出異常。
@Override @HystrixCommand(fallbackMethod = 'fastOrBatchFallback') public ResultModel transferApprove(TransferApproveDto dto) { log.info('調(diào)動流程審批:{}', dto); if (StringUtils.isEmpty(dto.getOperatorId())|| StringUtils.isEmpty(dto.getFlowNos())|| StringUtils.isEmpty(dto.getOperatorId())) { return ResultModel.fail(-1, '參數(shù)異常'); } } public ResultModel fastOrBatchFallback(TransferApproveDto transferApproveDto) { log.info('請求ps服務(wù)超時,請稍后再試.入?yún)?{}', GsonUtils.toJsonString(transferApproveDto)); return ResultModel.fail('請求服務(wù)超時,請稍后再試', 'ps服務(wù)超時,請稍后再試'); }
5: 待解決和研究問題?
hystrix 執(zhí)行了Fallback之后是否繼續(xù)走其他邏輯,目前可知的是繼續(xù)走其他邏輯,如果讓它不觸發(fā)后序的邏輯怎么配置?
這里先打一個問號,歡迎大家一起討論和解決。
到此這篇關(guān)于spring cloud hystrix 超時時間使用方式的文章就介紹到這了,更多相關(guān)spring cloud超時時間內(nèi)容請搜索好吧啦網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持好吧啦網(wǎng)!
相關(guān)文章:
1. php使用正則驗(yàn)證密碼字段的復(fù)雜強(qiáng)度原理詳細(xì)講解 原創(chuàng)2. Jsp+Servlet實(shí)現(xiàn)文件上傳下載 文件列表展示(二)3. XML在語音合成中的應(yīng)用4. Jsp servlet驗(yàn)證碼工具類分享5. 基于javaweb+jsp實(shí)現(xiàn)企業(yè)車輛管理系統(tǒng)6. jscript與vbscript 操作XML元素屬性的代碼7. 基于PHP做個圖片防盜鏈8. ASP.NET MVC使用Boostrap實(shí)現(xiàn)產(chǎn)品展示、查詢、排序、分頁9. ASP將數(shù)字轉(zhuǎn)中文數(shù)字(大寫金額)的函數(shù)10. asp.net core 認(rèn)證和授權(quán)實(shí)例詳解
