七.Hystrix Timeout机制
生活随笔
收集整理的這篇文章主要介紹了
七.Hystrix Timeout机制
小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
因?yàn)樵谝粋€(gè)復(fù)雜的系統(tǒng)里,可能你的依賴接口的性能很不穩(wěn)定,有時(shí)候2ms,200ms,2s,如果你不對(duì)各種依賴接口的調(diào)用做超時(shí)的控制來給你的服務(wù)提供安全保護(hù)措施,那么很可能你的服務(wù)就被依賴服務(wù)的性能給拖死了,大量的接口調(diào)用很慢,大量線程就卡死了。
(1)execution.isolation.thread.timeoutInMilliseconds
手動(dòng)設(shè)置timeout時(shí)長(zhǎng),一個(gè)command運(yùn)行超出這個(gè)時(shí)間,就被認(rèn)為是timeout,然后將hystrix command標(biāo)識(shí)為timeout,同時(shí)執(zhí)行fallback降級(jí)邏輯,默認(rèn)是1000,也就是1000毫秒。
HystrixCommandProperties.Setter().withExecutionTimeoutInMilliseconds(int value)?
(2)execution.timeout.enabled
控制是否要打開timeout機(jī)制,默認(rèn)是true
HystrixCommandProperties.Setter().withExecutionTimeoutEnabled(boolean value)?
/*** 獲取商品信息* @author 張三豐**/ public class GetProductInfoCommand extends HystrixCommand<ProductInfo> {private Long productId;public GetProductInfoCommand(Long productId) {super(Setter.withGroupKey(HystrixCommandGroupKey.Factory.asKey("ProductInfoService")).andCommandKey(HystrixCommandKey.Factory.asKey("GetProductInfoCommand")).andThreadPoolKey(HystrixThreadPoolKey.Factory.asKey("GetProductInfoPool")).andThreadPoolPropertiesDefaults(HystrixThreadPoolProperties.Setter().withCoreSize(10).withMaxQueueSize(12).withQueueSizeRejectionThreshold(15)) .andCommandPropertiesDefaults(HystrixCommandProperties.Setter().withCircuitBreakerRequestVolumeThreshold(30).withCircuitBreakerErrorThresholdPercentage(40).withCircuitBreakerSleepWindowInMilliseconds(3000).withExecutionTimeoutInMilliseconds(500)//超時(shí)時(shí)間500毫秒.withFallbackIsolationSemaphoreMaxConcurrentRequests(30)) ); this.productId = productId;}@Overrideprotected ProductInfo run() throws Exception {System.out.println("調(diào)用接口,查詢商品數(shù)據(jù),productId=" + productId); if(productId.equals(-2L)) {Thread.sleep(3000); }return JSONObject.parseObject("數(shù)據(jù)", ProductInfo.class); }@Overrideprotected ProductInfo getFallback() {ProductInfo productInfo = new ProductInfo();productInfo.setName("降級(jí)商品"); return productInfo;}}?
轉(zhuǎn)載于:https://www.cnblogs.com/z-3FENG/p/9696477.html
總結(jié)
以上是生活随笔為你收集整理的七.Hystrix Timeout机制的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Windows系统自带WMI应用的查询使
- 下一篇: burp intruder爆破出现 Pa