spring cloud hystrix 超時(shí)時(shí)間使用方式詳解
我們?cè)谑褂煤笈_(tái)微服務(wù)的時(shí)候,各個(gè)服務(wù)之前會(huì)有很多請(qǐng)求和交叉業(yè)務(wù)。這里會(huì)引起雪崩、超時(shí)等異常處理。SpringCloud Hystrix服務(wù)降級(jí)、容錯(cuò)機(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è)置超時(shí)時(shí)間的方法,如新增其他方法需要增加此節(jié)點(diǎn)信息。 execution: isolation: thread: timeoutInMilliseconds: 6000 #默認(rèn)連接超時(shí)時(shí)間是1秒
4:增加代碼
代碼注意fastOrBatchFallback的出參和入?yún)⒁驮O(shè)置了@HystrixCommand注解方法一致,否則會(huì)拋出異常。
@Override @HystrixCommand(fallbackMethod = 'fastOrBatchFallback') public ResultModel transferApprove(TransferApproveDto dto) { log.info('調(diào)動(dòng)流程審批:{}', 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('請(qǐng)求ps服務(wù)超時(shí),請(qǐng)稍后再試.入?yún)?{}', GsonUtils.toJsonString(transferApproveDto)); return ResultModel.fail('請(qǐng)求服務(wù)超時(shí),請(qǐng)稍后再試', 'ps服務(wù)超時(shí),請(qǐng)稍后再試'); }
5: 待解決和研究問題?
hystrix 執(zhí)行了Fallback之后是否繼續(xù)走其他邏輯,目前可知的是繼續(xù)走其他邏輯,如果讓它不觸發(fā)后序的邏輯怎么配置?
這里先打一個(gè)問號(hào),歡迎大家一起討論和解決。
到此這篇關(guān)于spring cloud hystrix 超時(shí)時(shí)間使用方式的文章就介紹到這了,更多相關(guān)spring cloud超時(shí)時(shí)間內(nèi)容請(qǐng)搜索好吧啦網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持好吧啦網(wǎng)!
相關(guān)文章:
1. ajax post下載flask文件流以及中文文件名問題2. 如何通過vscode運(yùn)行調(diào)試javascript代碼3. JSP+Servlet實(shí)現(xiàn)文件上傳到服務(wù)器功能4. WML語言的基本情況5. 利用CSS3新特性創(chuàng)建透明邊框三角6. 使用Docker的NFS-Ganesha鏡像搭建nfs服務(wù)器的詳細(xì)過程7. IntelliJ IDEA導(dǎo)入jar包的方法8. 利用CSS制作3D動(dòng)畫9. ASP中解決“對(duì)象關(guān)閉時(shí),不允許操作。”的詭異問題……10. ASP.NET泛型三之使用協(xié)變和逆變實(shí)現(xiàn)類型轉(zhuǎn)換
