最近中文字幕高清中文字幕无,亚洲欧美高清一区二区三区,一本色道无码道dvd在线观看 ,一个人看的www免费高清中文字幕

首頁(yè) 慕課教程 Spring Cloud Hystrix Spring Cloud Hystrix Hystrix 配置項(xiàng)講解(二)

Hystrix 配置項(xiàng)講解(二)

1. 前言

在上一篇文章中,我們對(duì) Hystrix 的基礎(chǔ)配置項(xiàng),即 Hystrix 與 Spring Cloud 整合后,內(nèi)置的 Hystrix 配置項(xiàng)做了詳細(xì)的介紹,這些配置項(xiàng)是我們結(jié)合 Spring Cloud 使用 Hystrix 的基礎(chǔ)內(nèi)容,我們只有在了解了 Spring Cloud 都提供了哪些內(nèi)置的 Hystrix 配置注解之后,才能很靈活的去應(yīng)用 Hystrix 。

在了解了 Hystrix 的基礎(chǔ)配置之后,我們還需要對(duì)其他常用的 Hystrix 配置項(xiàng)有所了解。本節(jié)會(huì)結(jié)合 Hystrix 官網(wǎng)列出的配置參數(shù),結(jié)合 Spring Cloud 框架,來(lái)為大家介紹 Hystrix 的其他配置內(nèi)容。

本節(jié)主要內(nèi)容:

  • Hystrix 其他配置項(xiàng)概覽;

  • Hystrix 常用其他配置參數(shù)詳解。

2. Hystrix 其他配置項(xiàng)概覽

結(jié)合 Hystrix 官網(wǎng)給出的說(shuō)明,Hystrix 的其他配置項(xiàng)可分為 3 大模塊,它們分別是公共配置模塊、命令合并配置模塊、線程池配置模塊。

在這三大模塊中,命令合并配置模塊、線程池配置模塊下沒(méi)有其他的子項(xiàng)配置內(nèi)容,也就是說(shuō),命令合并配置模塊下,所有的配置項(xiàng)都只配置命令合并;線程池配置模塊下,所有的配置項(xiàng)都只對(duì)線程池進(jìn)行配置。而公共配置模塊中就包含了很多子項(xiàng)的配置,它們的關(guān)系如下圖所示:

Hystrix 公共配置模塊概覽

在這三個(gè)模塊中,我會(huì)挑選其中常用的屬性參數(shù)來(lái)為大家介紹,至于那些在實(shí)際工作中很少用或者基本使用不到的屬性,這里就不做介紹了。

3. Hystrix 常用其他配置參數(shù)詳解

3.1 公共配置模塊詳解

根據(jù)上述公共配置模塊的分類圖可知,在公共配置模塊中分為了很多子項(xiàng)配置,但是這些子項(xiàng)配置并不是都需要我們進(jìn)行掌握,有的配置我們只需要簡(jiǎn)單了解即可。

接下來(lái)就讓我們來(lái)看一下,在公共配置模塊的各項(xiàng)子配置中,都有哪些參數(shù)是經(jīng)常使用的吧。

執(zhí)行參數(shù)配置

參數(shù)名稱:execution.isolation.strategy

參數(shù)說(shuō)明:該參數(shù)是用來(lái)配置 Hystrix 的隔離策略,有兩種模式可供選擇,分別是線程隔離模式、信號(hào)量隔離模式,默認(rèn)情況下, Hystrix 被配置為了線程隔離模式,這也是 Hystrix 官網(wǎng)推薦的默認(rèn)配置。

參數(shù)名稱:execution.timeout.enabled

參數(shù)說(shuō)明:該參數(shù)是用來(lái)配置,Hystrix 的執(zhí)行是否支持延遲,即配置 Hystrix 執(zhí)行的延時(shí)時(shí)間,默認(rèn)是啟用延遲時(shí)間。

參數(shù)名稱:execution.isolation.thread.interruptOnTimeout

參數(shù)說(shuō)明:該參數(shù)是用來(lái)配置,當(dāng) Hystrix 的執(zhí)行超過(guò)了我們?cè)O(shè)置的延遲時(shí)間時(shí),是否會(huì)中斷當(dāng)前線程的執(zhí)行,默認(rèn)是啟用該中斷效果。

參數(shù)名稱:execution.isolation.semaphore.
maxConcurrentRequests

參數(shù)說(shuō)明:該參數(shù)只在當(dāng) Hystrix 的隔離策略被設(shè)置為信號(hào)量隔離模式時(shí)才會(huì)生效,即配置 Hystrix 執(zhí)行所允許的最大請(qǐng)求數(shù)量,當(dāng)請(qǐng)求數(shù)量超過(guò)了最大請(qǐng)求數(shù)量時(shí),那么后續(xù)的請(qǐng)求將被拒絕,不再處理。該配置的默認(rèn)最大請(qǐng)求數(shù)量為 10 。

降級(jí)參數(shù)配置

參數(shù)名稱:fallback.isolation.semaphore.
maxConcurrentRequests

參數(shù)說(shuō)明:該參數(shù)只在當(dāng) Hystrix 的降級(jí)策略被配置為 semaphore 信號(hào)量模式下才會(huì)生效,即配置請(qǐng)求降級(jí)方法的最大請(qǐng)求數(shù)量,當(dāng)請(qǐng)求的數(shù)量達(dá)到最大請(qǐng)求數(shù)量時(shí),如果配置了降級(jí)方法,則請(qǐng)求會(huì)打到對(duì)應(yīng)的降級(jí)方法上,且后續(xù)的請(qǐng)求都會(huì)被拒絕;如果沒(méi)有配置降級(jí)方法,則會(huì)拋出異常。該屬性的默認(rèn)最大請(qǐng)求數(shù)量為 10 。

參數(shù)名稱:fallback.enabled

參數(shù)說(shuō)明:該參數(shù)就是用來(lái)配置,服務(wù)降級(jí)是否開(kāi)啟,默認(rèn)為開(kāi)啟。

熔斷參數(shù)配置

參數(shù)名稱:circuitBreaker.enabled

參數(shù)說(shuō)明:該參數(shù)就是用來(lái)配置,服務(wù)熔斷是否開(kāi)啟,默認(rèn)為開(kāi)啟。

參數(shù)名稱:circuitBreaker.requestVolumeThreshold

參數(shù)說(shuō)明:該參數(shù)是用來(lái)設(shè)置,啟用服務(wù)熔斷的最少請(qǐng)求數(shù)量,例如:我們?cè)O(shè)置該屬性的值為 10 ,此時(shí),只有 9 個(gè)請(qǐng)求需要處理,那么我們配置的服務(wù)熔斷也是未啟用狀態(tài)。該屬性的默認(rèn)值為 20 。

參數(shù)名稱:circuitBreaker.errorThresholdPercentage

參數(shù)說(shuō)明:該參數(shù)是用來(lái)配置啟用服務(wù)熔斷的請(qǐng)求出錯(cuò)比例,例如:當(dāng)我們?cè)O(shè)置該屬性的值為 50% 時(shí),在有 20 個(gè)請(qǐng)求需要處理的場(chǎng)景下,有 10 個(gè)請(qǐng)求錯(cuò)誤,那么此時(shí)就會(huì)啟用服務(wù)熔斷。該屬性的默認(rèn)值為 50 。

參數(shù)名稱:circuitBreaker.forceOpen

參數(shù)說(shuō)明:該參數(shù)時(shí)用來(lái)配置服務(wù)熔斷的打開(kāi)狀態(tài),如果該屬性被設(shè)置為 true ,則表示服務(wù)熔斷將會(huì)一直啟用,那么再有請(qǐng)求過(guò)來(lái)時(shí),則不會(huì)處理任何請(qǐng)求,即斷路器一直會(huì)拒絕所有的請(qǐng)求。該屬性的默認(rèn)值為 false 。

參數(shù)名稱:circuitBreaker.forceClosed

參數(shù)說(shuō)明:該參數(shù)的作用與 forceOpen 屬性正好相反,該屬性是設(shè)置服務(wù)熔斷的關(guān)閉狀態(tài),如果該屬性被設(shè)置為 true ,則斷路器會(huì)一直處于關(guān)閉狀態(tài),會(huì)處理所有打過(guò)來(lái)的請(qǐng)求,無(wú)視請(qǐng)求錯(cuò)誤率。該屬性的默認(rèn)值為 false 。

監(jiān)控參數(shù)配置

對(duì)于 Hystrix 監(jiān)控參數(shù) Metrics 的相關(guān)配置項(xiàng),由于太過(guò)抽象,所以這里就先不做介紹了,后續(xù)我們?cè)诮榻B Hystrix 監(jiān)控面板的時(shí)候再做介紹。

請(qǐng)求上下文參數(shù)配置

參數(shù)名稱:requestCache.enabled

參數(shù)說(shuō)明:該參數(shù)的作用就是配置請(qǐng)求緩存的使用狀態(tài),默認(rèn)為 true ,即使用請(qǐng)求緩存。

參數(shù)名稱:requestLog.enabled

參數(shù)說(shuō)明:該參數(shù)的作用就是配置請(qǐng)求日志的使用狀態(tài),默認(rèn)為 true ,即使用請(qǐng)求日志。

3.2 命令合并配置模塊詳解

參數(shù)名稱:maxRequestsInBatch

參數(shù)說(shuō)明:該參數(shù)就是用來(lái)設(shè)置可以合并的最大請(qǐng)求數(shù)量,默認(rèn)值為 Integer.MAX_VALUE 。

參數(shù)名稱:timerDelayInMilliseconds

參數(shù)說(shuō)明:該參數(shù)是用來(lái)設(shè)置請(qǐng)求合并到執(zhí)行請(qǐng)求合并之間的間隔時(shí)間,默認(rèn)值為 10 毫秒。

參數(shù)名稱:requestCache.enabled

參數(shù)說(shuō)明:該參數(shù)是用來(lái)設(shè)置,請(qǐng)求合并是否要寫進(jìn)請(qǐng)求緩存中去,默認(rèn)為 true ,即寫進(jìn)請(qǐng)求緩存中。

3.3 線程池配置模塊詳解

參數(shù)名稱:coreSize

參數(shù)說(shuō)明:該屬性用來(lái)設(shè)置核心線程池的大小,默認(rèn)為 10 。

參數(shù)名稱:maximumSize

參數(shù)說(shuō)明:該屬性是用來(lái)設(shè)置線程池的最大線程數(shù)量,默認(rèn)為 10 ,在 1.5.9 版本之前,線程池的核心線程數(shù)量總是與線程池的最大線程數(shù)量保持一致。

參數(shù)名稱:allowMaximumSizeToDivergeFromCoreSize

參數(shù)說(shuō)明:該屬性是用來(lái)設(shè)置,是否啟用 maximumSize ,即設(shè)置線程池的 coreSize 和 maximumSize 的值不一致,當(dāng)被設(shè)置為 true 時(shí),該屬性生效,即線程池的最大線程數(shù)量大于或等于線程池的核心線程數(shù)量。該屬性的默認(rèn)值為 false 。

參數(shù)名稱:keepAliveTimeMinutes

參數(shù)說(shuō)明:該參數(shù)是用來(lái)設(shè)置線程的存活時(shí)間,即在線程池的核心線程數(shù)量小于線程池的最大線程數(shù)量時(shí),一個(gè)線程的可運(yùn)行時(shí)長(zhǎng)。該屬性的默認(rèn)值為 1 分鐘。

4. 小結(jié)

本節(jié)內(nèi)容概覽

本小節(jié)通過(guò)圖文并茂的方式,為大家介紹了 Hystrix 的其他配置項(xiàng),這些配置項(xiàng)并不像 Hystrix 基礎(chǔ)配置項(xiàng)那樣重要,但是在實(shí)際 Hystrix 配置使用中,也扮演著比較重要的角色,同學(xué)們要對(duì)這些配置項(xiàng)有簡(jiǎn)單的了解才行。