配置隔離規(guī)則
隔離規(guī)則通過控制接口或依賴的并發(fā)線程數(shù),來保證系統(tǒng)的穩(wěn)定性。通常適用于應(yīng)用內(nèi)部或下游依賴出現(xiàn)不穩(wěn)定的場景,例如慢SQL、下游應(yīng)用響應(yīng)時間變長等。本文介紹如何配置和管理隔離規(guī)則。
前提條件
開通企業(yè)版。相關(guān)內(nèi)容,請參見微服務(wù)治理升級為企業(yè)版。
MSE治理中心已接入微服務(wù)應(yīng)用,相關(guān)內(nèi)容,請參見:
背景信息
當(dāng)強依賴的方法或接口不穩(wěn)定的時候,可以通過配置并發(fā)線程數(shù)來限制不穩(wěn)定的強依賴并發(fā)數(shù),起到隔離異常的效果。若運行該請求的響應(yīng)時間變長,會導(dǎo)致線程的并發(fā)數(shù)增大。當(dāng)并發(fā)數(shù)超過閾值以后,AHAS將拒絕多余的請求,直到堆積的任務(wù)完成,并發(fā)線程數(shù)減少,從而達(dá)到隔離異常、減小不穩(wěn)定性的效果。
如何設(shè)定并發(fā)線程數(shù)閾值,可參見以下內(nèi)容:
并發(fā)線程數(shù) = 期望QPS*響應(yīng)時間+冗余量。
例如預(yù)期的SQL執(zhí)行時間為20毫秒,預(yù)期該請求每秒有20個,并發(fā)最大時為6個,建議并發(fā)線程數(shù)按照以下邏輯設(shè)置:Max(20/1000*20,6)= 6 ,再加上冗余量2 ,則建議并發(fā)數(shù)閾值設(shè)置為8。
設(shè)置好后,當(dāng)這個SQL發(fā)生死鎖或者有性能問題,SQL運行特別慢成為慢SQL時,即使請求不斷地進(jìn)來,也僅僅會占用8個線程,不會因為持續(xù)進(jìn)來的請求(請求也無法在短時間內(nèi)退出)而耗光進(jìn)程的活躍線程。
當(dāng)這個SQL恢復(fù)正常后,并發(fā)數(shù)會迅速減少。當(dāng)并發(fā)數(shù)減少至低于預(yù)設(shè)的閾值時,系統(tǒng)就不會拒絕請求,應(yīng)用的處理能力也快速的恢復(fù)。通過這樣的方式,起到了根據(jù)響應(yīng)時間自動調(diào)節(jié)的效果,隔離了不穩(wěn)定的應(yīng)用。
隔離規(guī)則配置通常用于強依賴隔離場景,詳情請參見強依賴隔離。
功能入口
登錄MSE治理中心控制臺,并在頂部菜單欄選擇地域。
在左側(cè)導(dǎo)航欄,選擇治理中心 > 應(yīng)用治理。
在應(yīng)用列表頁面,單擊目標(biāo)應(yīng)用的資源卡片。
進(jìn)入應(yīng)用之后,選擇以下任意一種方法新建隔離規(guī)則:
在左側(cè)導(dǎo)航欄,單擊應(yīng)用概覽,然后單擊通過QPS TOP頁簽,單擊對應(yīng)接口的操作列下的隔離。
在左側(cè)導(dǎo)航欄,單擊接口詳情。單擊并發(fā)隔離頁簽,然后單擊新增隔離規(guī)則。
在左側(cè)導(dǎo)航欄,單擊流量治理。單擊流量防護(hù)頁簽,再單擊并發(fā)隔離頁簽,然后單擊新增隔離規(guī)則。
在新增隔離防護(hù)規(guī)則或新增規(guī)則對話框中配置規(guī)則信息,然后單擊新建。
說明參數(shù)說明具體詳見更多信息。
常用示例:保障自身資源充足
當(dāng)運行該請求的響應(yīng)時間變長,會導(dǎo)致線程的并發(fā)數(shù)變大。當(dāng)并發(fā)數(shù)超過閾值以后,AHAS將拒絕多余的請求,直到堆積的任務(wù)完成,并發(fā)線程數(shù)變少。達(dá)到將異常隔離,減小不穩(wěn)定性的效果。例如某個SQL執(zhí)行時間為20毫秒,預(yù)期該請求每秒有20個。
在新增隔離防護(hù)規(guī)則或新增規(guī)則對話框中配置以下規(guī)則信息:
填寫接口名稱。
并發(fā)數(shù)閾值為10。
設(shè)置完成后,當(dāng)這個SQL發(fā)生死鎖或者存在性能問題時,該SQL運行變慢,成為慢SQL,此時即使請求不斷進(jìn)來,也僅僅會占用10個線程,不會因為持續(xù)進(jìn)來的請求(請求也無法在短時間內(nèi)退出),從而耗光進(jìn)程的活躍線程。當(dāng)這個SQL恢復(fù)正常后,并發(fā)數(shù)會迅速減少。當(dāng)并發(fā)數(shù)減少至低于預(yù)設(shè)的閾值時,系統(tǒng)就不會拒絕請求,應(yīng)用的處理能力也快速的恢復(fù)。通過這樣的方式,起到了根據(jù)響應(yīng)時間自動調(diào)節(jié)的效果,隔離了不穩(wěn)定的應(yīng)用。
更多信息
新增隔離防護(hù)規(guī)則或新增規(guī)則對話框配置項解釋如下:
配置項 | 描述 |
接口名稱 | 待隔離的資源名稱。 |
并發(fā)數(shù)閾值 | 資源的并發(fā)線程數(shù)(即該資源正在執(zhí)行的線程數(shù))閾值。 |