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: 待解決和研究問(wèn)題?
hystrix 執(zhí)行了Fallback之后是否繼續(xù)走其他邏輯,目前可知的是繼續(xù)走其他邏輯,如果讓它不觸發(fā)后序的邏輯怎么配置?
這里先打一個(gè)問(wèn)號(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. js實(shí)現(xiàn)碰撞檢測(cè)2. 用Spring JMS使異步消息變得簡(jiǎn)單3. JS實(shí)現(xiàn)前端動(dòng)態(tài)分頁(yè)碼代碼實(shí)例4. 一文帶你徹底理解Java序列化和反序列化5. 關(guān)于IDEA 2020.3 多窗口視圖丟失的問(wèn)題6. PHP驗(yàn)證碼工具-Securimage7. PHP使用Swagger生成好看的API文檔8. ASP.NET MVC使用jQuery ui的progressbar實(shí)現(xiàn)進(jìn)度條9. 通過(guò)實(shí)例解析Python文件操作實(shí)現(xiàn)步驟10. Python 下載Bing壁紙的示例

網(wǎng)公網(wǎng)安備