spring cloud hystrix 超時時間使用方式詳解
我們在使用后臺微服務的時候,各個服務之前會有很多請求和交叉業務。這里會引起雪崩、超時等異常處理。SpringCloud Hystrix服務降級、容錯機治理使 hystrix 有很好的支持,引入后實現斷路器功能。
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屬性要設置true
hystrix: command: transferApprove: # 這里是要設置超時時間的方法,如新增其他方法需要增加此節點信息。 execution: isolation: thread: timeoutInMilliseconds: 6000 #默認連接超時時間是1秒
4:增加代碼
代碼注意fastOrBatchFallback的出參和入參要和設置了@HystrixCommand注解方法一致,否則會拋出異常。
@Override @HystrixCommand(fallbackMethod = 'fastOrBatchFallback') public ResultModel transferApprove(TransferApproveDto dto) { log.info('調動流程審批:{}', dto); if (StringUtils.isEmpty(dto.getOperatorId())|| StringUtils.isEmpty(dto.getFlowNos())|| StringUtils.isEmpty(dto.getOperatorId())) { return ResultModel.fail(-1, '參數異常'); } } public ResultModel fastOrBatchFallback(TransferApproveDto transferApproveDto) { log.info('請求ps服務超時,請稍后再試.入參:{}', GsonUtils.toJsonString(transferApproveDto)); return ResultModel.fail('請求服務超時,請稍后再試', 'ps服務超時,請稍后再試'); }
5: 待解決和研究問題?
hystrix 執行了Fallback之后是否繼續走其他邏輯,目前可知的是繼續走其他邏輯,如果讓它不觸發后序的邏輯怎么配置?
這里先打一個問號,歡迎大家一起討論和解決。
到此這篇關于spring cloud hystrix 超時時間使用方式的文章就介紹到這了,更多相關spring cloud超時時間內容請搜索好吧啦網以前的文章或繼續瀏覽下面的相關文章希望大家以后多多支持好吧啦網!
相關文章: