真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

SpringCloud中hystrix參數(shù)怎么用

這篇文章主要介紹SpringCloud中hystrix參數(shù)怎么用,文中介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們一定要看完!

公司主營(yíng)業(yè)務(wù):做網(wǎng)站、網(wǎng)站建設(shè)、移動(dòng)網(wǎng)站開發(fā)等業(yè)務(wù)。幫助企業(yè)客戶真正實(shí)現(xiàn)互聯(lián)網(wǎng)宣傳,提高企業(yè)的競(jìng)爭(zhēng)能力。成都創(chuàng)新互聯(lián)公司是一支青春激揚(yáng)、勤奮敬業(yè)、活力青春激揚(yáng)、勤奮敬業(yè)、活力澎湃、和諧高效的團(tuán)隊(duì)。公司秉承以“開放、自由、嚴(yán)謹(jǐn)、自律”為核心的企業(yè)文化,感謝他們對(duì)我們的高要求,感謝他們從不同領(lǐng)域給我們帶來的挑戰(zhàn),讓我們激情的團(tuán)隊(duì)有機(jī)會(huì)用頭腦與智慧不斷的給客戶帶來驚喜。成都創(chuàng)新互聯(lián)公司推出平頂山免費(fèi)做網(wǎng)站回饋大家。

一、hystrix參數(shù)使用方法

通過注解@HystrixCommand的commandProperties去配置,

如下就是hystrix命令超時(shí)時(shí)間命令執(zhí)行超時(shí)時(shí)間,為1000ms和執(zhí)行是不啟用超時(shí)

@RestController
public class MovieController {
  @Autowired
  private RestTemplate restTemplate;
 
  @GetMapping("/movie/{id}")
  @HystrixCommand(commandProperties = {
          @HystrixProperty(name = "execution.isolation.thread.timeoutInMilliseconds", value = "1000"),
          @HystrixProperty(name = "execution.timeout.enabled", value = "false")},fallbackMethod = "findByIdFallback")
  public User findById(@PathVariable Long id) {
    return this.restTemplate.getForObject("http://microservice-provider-user/simple/" + id, User.class);
  }
 
  /**
   * fallback方法
   * @param id
   * @return
     */
  public User findByIdFallback(Long id) {
    User user = new User();
    user.setId(5L);
    return user;
  }
}

二、hystrix參數(shù)如下

hystrix.command.default和hystrix.threadpool.default中的default為默認(rèn)CommandKey
 
Command Properties
Execution相關(guān)的屬性的配置:
hystrix.command.default.execution.isolation.strategy 隔離策略,默認(rèn)是Thread, 可選Thread|Semaphore
 
hystrix.command.default.execution.isolation.thread.timeoutInMilliseconds 命令執(zhí)行超時(shí)時(shí)間,默認(rèn)1000ms
 
hystrix.command.default.execution.timeout.enabled 執(zhí)行是否啟用超時(shí),默認(rèn)啟用true
hystrix.command.default.execution.isolation.thread.interruptOnTimeout 發(fā)生超時(shí)是是否中斷,默認(rèn)true
hystrix.command.default.execution.isolation.semaphore.maxConcurrentRequests 最大并發(fā)請(qǐng)求數(shù),默認(rèn)10,該參數(shù)當(dāng)使用ExecutionIsolationStrategy.SEMAPHORE策略時(shí)才有效。如果達(dá)到最大并發(fā)請(qǐng)求數(shù),請(qǐng)求會(huì)被拒絕。理論上選擇semaphore size的原則和選擇thread size一致,但選用semaphore時(shí)每次執(zhí)行的單元要比較小且執(zhí)行速度快(ms級(jí)別),否則的話應(yīng)該用thread。
semaphore應(yīng)該占整個(gè)容器(tomcat)的線程池的一小部分。
Fallback相關(guān)的屬性
這些參數(shù)可以應(yīng)用于Hystrix的THREAD和SEMAPHORE策略
 
hystrix.command.default.fallback.isolation.semaphore.maxConcurrentRequests 如果并發(fā)數(shù)達(dá)到該設(shè)置值,請(qǐng)求會(huì)被拒絕和拋出異常并且fallback不會(huì)被調(diào)用。默認(rèn)10
hystrix.command.default.fallback.enabled 當(dāng)執(zhí)行失敗或者請(qǐng)求被拒絕,是否會(huì)嘗試調(diào)用hystrixCommand.getFallback() 。默認(rèn)true
Circuit Breaker相關(guān)的屬性
hystrix.command.default.circuitBreaker.enabled 用來跟蹤circuit的健康性,如果未達(dá)標(biāo)則讓request短路。默認(rèn)true
hystrix.command.default.circuitBreaker.requestVolumeThreshold 一個(gè)rolling window內(nèi)最小的請(qǐng)求數(shù)。如果設(shè)為20,那么當(dāng)一個(gè)rolling window的時(shí)間內(nèi)(比如說1個(gè)rolling window是10秒)收到19個(gè)請(qǐng)求,即使19個(gè)請(qǐng)求都失敗,也不會(huì)觸發(fā)circuit break。默認(rèn)20
hystrix.command.default.circuitBreaker.sleepWindowInMilliseconds 觸發(fā)短路的時(shí)間值,當(dāng)該值設(shè)為5000時(shí),則當(dāng)觸發(fā)circuit break后的5000毫秒內(nèi)都會(huì)拒絕request,也就是5000毫秒后才會(huì)關(guān)閉circuit。默認(rèn)5000
hystrix.command.default.circuitBreaker.errorThresholdPercentage錯(cuò)誤比率閥值,如果錯(cuò)誤率>=該值,circuit會(huì)被打開,并短路所有請(qǐng)求觸發(fā)fallback。默認(rèn)50
hystrix.command.default.circuitBreaker.forceOpen 強(qiáng)制打開熔斷器,如果打開這個(gè)開關(guān),那么拒絕所有request,默認(rèn)false
hystrix.command.default.circuitBreaker.forceClosed 強(qiáng)制關(guān)閉熔斷器 如果這個(gè)開關(guān)打開,circuit將一直關(guān)閉且忽略circuitBreaker.errorThresholdPercentage
Metrics相關(guān)參數(shù)
hystrix.command.default.metrics.rollingStats.timeInMilliseconds 設(shè)置統(tǒng)計(jì)的時(shí)間窗口值的,毫秒值,circuit break 的打開會(huì)根據(jù)1個(gè)rolling window的統(tǒng)計(jì)來計(jì)算。若rolling window被設(shè)為10000毫秒,則rolling window會(huì)被分成n個(gè)buckets,每個(gè)bucket包含success,failure,timeout,rejection的次數(shù)的統(tǒng)計(jì)信息。默認(rèn)10000
hystrix.command.default.metrics.rollingStats.numBuckets 設(shè)置一個(gè)rolling window被劃分的數(shù)量,若numBuckets=10,rolling window=10000,那么一個(gè)bucket的時(shí)間即1秒。必須符合rolling window % numberBuckets == 0。默認(rèn)10
hystrix.command.default.metrics.rollingPercentile.enabled 執(zhí)行時(shí)是否enable指標(biāo)的計(jì)算和跟蹤,默認(rèn)true
hystrix.command.default.metrics.rollingPercentile.timeInMilliseconds 設(shè)置rolling percentile window的時(shí)間,默認(rèn)60000
hystrix.command.default.metrics.rollingPercentile.numBuckets 設(shè)置rolling percentile window的numberBuckets。邏輯同上。默認(rèn)6
hystrix.command.default.metrics.rollingPercentile.bucketSize 如果bucket size=100,window=10s,若這10s里有500次執(zhí)行,只有最后100次執(zhí)行會(huì)被統(tǒng)計(jì)到bucket里去。增加該值會(huì)增加內(nèi)存開銷以及排序的開銷。默認(rèn)100
hystrix.command.default.metrics.healthSnapshot.intervalInMilliseconds 記錄health 快照(用來統(tǒng)計(jì)成功和錯(cuò)誤綠)的間隔,默認(rèn)500ms
Request Context 相關(guān)參數(shù)
hystrix.command.default.requestCache.enabled 默認(rèn)true,需要重載getCacheKey(),返回null時(shí)不緩存
hystrix.command.default.requestLog.enabled 記錄日志到HystrixRequestLog,默認(rèn)true
 
Collapser Properties 相關(guān)參數(shù)
hystrix.collapser.default.maxRequestsInBatch 單次批處理的最大請(qǐng)求數(shù),達(dá)到該數(shù)量觸發(fā)批處理,默認(rèn)Integer.MAX_VALUE
hystrix.collapser.default.timerDelayInMilliseconds 觸發(fā)批處理的延遲,也可以為創(chuàng)建批處理的時(shí)間+該值,默認(rèn)10
hystrix.collapser.default.requestCache.enabled 是否對(duì)HystrixCollapser.execute() and HystrixCollapser.queue()的cache,默認(rèn)true
 
ThreadPool 相關(guān)參數(shù)
線程數(shù)默認(rèn)值10適用于大部分情況(有時(shí)可以設(shè)置得更?。?,如果需要設(shè)置得更大,那有個(gè)基本得公式可以follow:
requests per second at peak when healthy × 99th percentile latency in seconds + some breathing room
每秒最大支撐的請(qǐng)求數(shù) (99%平均響應(yīng)時(shí)間 + 緩存值)
比如:每秒能處理1000個(gè)請(qǐng)求,99%的請(qǐng)求響應(yīng)時(shí)間是60ms,那么公式是:
(0.060+0.012)
 
基本得原則時(shí)保持線程池盡可能小,他主要是為了釋放壓力,防止資源被阻塞。
當(dāng)一切都是正常的時(shí)候,線程池一般僅會(huì)有1到2個(gè)線程激活來提供服務(wù)
 
hystrix.threadpool.default.coreSize 并發(fā)執(zhí)行的最大線程數(shù),默認(rèn)10
hystrix.threadpool.default.maxQueueSize BlockingQueue的最大隊(duì)列數(shù),當(dāng)設(shè)為-1,會(huì)使用SynchronousQueue,值為正時(shí)使用LinkedBlcokingQueue。該設(shè)置只會(huì)在初始化時(shí)有效,之后不能修改threadpool的queue size,除非reinitialising thread executor。默認(rèn)-1。
hystrix.threadpool.default.queueSizeRejectionThreshold 即使maxQueueSize沒有達(dá)到,達(dá)到queueSizeRejectionThreshold該值后,請(qǐng)求也會(huì)被拒絕。因?yàn)閙axQueueSize不能被動(dòng)態(tài)修改,這個(gè)參數(shù)將允許我們動(dòng)態(tài)設(shè)置該值。if maxQueueSize == -1,該字段將不起作用
hystrix.threadpool.default.keepAliveTimeMinutes 如果corePoolSize和maxPoolSize設(shè)成一樣(默認(rèn)實(shí)現(xiàn))該設(shè)置無效。如果通過plugin(https://github.com/Netflix/Hystrix/wiki/Plugins)使用自定義實(shí)現(xiàn),該設(shè)置才有用,默認(rèn)1.
hystrix.threadpool.default.metrics.rollingStats.timeInMilliseconds 線程池統(tǒng)計(jì)指標(biāo)的時(shí)間,默認(rèn)10000
hystrix.threadpool.default.metrics.rollingStats.numBuckets 將rolling window劃分為n個(gè)buckets,默認(rèn)10

以上是“SpringCloud中hystrix參數(shù)怎么用”這篇文章的所有內(nèi)容,感謝各位的閱讀!希望分享的內(nèi)容對(duì)大家有幫助,更多相關(guān)知識(shí),歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道!


當(dāng)前文章:SpringCloud中hystrix參數(shù)怎么用
網(wǎng)站鏈接:http://weahome.cn/article/poioci.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部