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. moment轉(zhuǎn)化時間戳出現(xiàn)Invalid Date的問題及解決2. python爬蟲實(shí)戰(zhàn)之制作屬于自己的一個IP代理模塊3. 使用JSP技術(shù)實(shí)現(xiàn)一個簡單的在線測試系統(tǒng)的實(shí)例詳解4. Java剖析工具YourKit 發(fā)布5.0版本5. 解決VUE項目localhost端口服務(wù)器拒絕連接,只能用127.0.0.1的問題6. Python中內(nèi)建模塊collections如何使用7. 為什么你的android代碼寫得這么亂8. python實(shí)現(xiàn)坦克大戰(zhàn)9. 開發(fā)效率翻倍的Web API使用技巧10. 跟我學(xué)XSL(一)第1/5頁
