国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

企業(yè)如何通過熔斷降級增強服務(wù)穩(wěn)定性和系統(tǒng)可用性?

這篇具有很好參考價值的文章主要介紹了企業(yè)如何通過熔斷降級增強服務(wù)穩(wěn)定性和系統(tǒng)可用性?。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

API 的調(diào)用穩(wěn)定性被視為數(shù)據(jù)服務(wù)的最重要的指標(biāo)。該指標(biāo)的影響因素是多種多樣的,「袋鼠云數(shù)據(jù)服務(wù)平臺 DataAPI」不僅多次對于調(diào)用性能和穩(wěn)定性進行壓測和調(diào)優(yōu),而且還提供了多種配置項優(yōu)化手段供客戶進行自行調(diào)優(yōu)。但是當(dāng)遇到不可預(yù)期的大流量或其他突然情況時還是會遇到 API 調(diào)用失敗的情況。

當(dāng)隨著流量的不斷增長,達(dá)到或超過服務(wù)本身的可承載范圍,系統(tǒng)服務(wù)的自我保護機制的建立就顯得很重要了。「袋鼠云數(shù)據(jù)服務(wù)平臺 DataAPI」將 API 調(diào)用和微服務(wù)流量控制概念相結(jié)合,推出了熔斷降級功能,最大程度保證 API 調(diào)用的穩(wěn)定性和系統(tǒng)可用性。

本文希望可以用最通俗的解釋和貼切的實例帶大家了解什么是熔斷降級。

熔斷降級概述

一般提到微服務(wù)系統(tǒng)流量保護,都會提起限流、熔斷、降級三種手段,其實他們都是系統(tǒng)容錯的重要設(shè)計模式。

限流、熔斷、降級

● 限流

限流是一種對系統(tǒng)被請求頻率以及內(nèi)部部分功能的執(zhí)行頻率進行限制的措施,防止因突發(fā)的流量激增,導(dǎo)致整個系統(tǒng)不可用。限流主要是防御保護手段,從流量源頭開始控制流量、規(guī)避問題。

● 熔斷

熔斷機制是一種自動化的應(yīng)對措施,當(dāng)流量過大或下游服務(wù)出現(xiàn)問題時,可以自動斷開與下游服務(wù)的交互,以防止故障的進一步擴散。同時,熔斷機制還可以自我診斷下游系統(tǒng)的錯誤是否已經(jīng)修正,或者上游流量是否減少至正常水平,以實現(xiàn)自我恢復(fù)。

熔斷更像是自動化補救手段,可能發(fā)生在服務(wù)無法支撐大量請求或服務(wù)發(fā)生其他故障時,對請求進行限制處理,同時還可嘗試性的進行恢復(fù)。

● 服務(wù)降級

主要是針對非核心業(yè)務(wù)功能,而核心業(yè)務(wù)如果流程超過預(yù)估的峰值,就需要進行限流。降級一般考慮的是分布式系統(tǒng)的整體性,從源頭上切斷流量的來源。降級更像是一種預(yù)估手段,在預(yù)計流量峰值前提下,提前通過配置功能降低服務(wù)體驗,或暫停次要功能,保證系統(tǒng)主要流程功能平穩(wěn)響應(yīng)。

熔斷降級

限流和熔斷也可以看作是一種服務(wù)降級的手段。微服務(wù)架構(gòu)下,服務(wù)和服務(wù)之間的調(diào)用通常關(guān)注的是流量,開發(fā)者需要從流量路由、流量控制、流量整形、熔斷降級、系統(tǒng)自適應(yīng)過載保護、熱點流量防護等多個維度來保障微服務(wù)的穩(wěn)定性。其中熔斷降級更趨向于在微服務(wù)調(diào)用鏈路中保障重點鏈路或者重點服務(wù)的穩(wěn)定性。

如下圖,當(dāng) serviceD 發(fā)生異常不可用時會影響到 serviceA、B、G、F,如不加以管控,最終可能會導(dǎo)致整個微服務(wù)全部癱瘓。熔斷要做的事情就是達(dá)到某個錯誤閾值后停止再調(diào)用 serviceD 服務(wù);降級則會返回開發(fā)者自定義的降級內(nèi)容,至少保證鏈路的整體可用。

企業(yè)如何通過熔斷降級增強服務(wù)穩(wěn)定性和系統(tǒng)可用性?

熔斷規(guī)則介紹

「袋鼠云數(shù)據(jù)服務(wù)平臺 DataAPI」目前提供三種熔斷策略,每個 API 可以且僅可關(guān)聯(lián)一個熔斷策略,策略類型分別為:

● 慢調(diào)用比例(SLOW_REQUEST_RATIO)

選擇以慢調(diào)用比例作為閾值,需要設(shè)置允許的慢調(diào)用 RT(即最大的響應(yīng)時間),請求的響應(yīng)時間大于該值則統(tǒng)計為慢調(diào)用。當(dāng)單位統(tǒng)計時長(statIntervalMs)內(nèi)請求數(shù)目大于設(shè)置的最小請求數(shù)目,并且慢調(diào)用的比例大于閾值,則接下來的熔斷時長內(nèi)請求會自動被熔斷。

經(jīng)過熔斷時長后熔斷器會進入探測恢復(fù)狀態(tài)(HALF-OPEN 狀態(tài)),若接下來的一個請求響應(yīng)時間小于設(shè)置的慢調(diào)用 RT 則結(jié)束熔斷,若大于設(shè)置的慢調(diào)用 RT 則會再次被熔斷。

● 異常比例(ERROR_RATIO)

當(dāng)單位統(tǒng)計時長(statIntervalMs)內(nèi)請求數(shù)目大于設(shè)置的最小請求數(shù)目,并且異常的比例大于閾值,則接下來的熔斷時長內(nèi)請求會自動被熔斷。

經(jīng)過熔斷時長后熔斷器會進入探測恢復(fù)狀態(tài)(HALF-OPEN 狀態(tài)),若接下來的一個請求成功完成(沒有錯誤)則結(jié)束熔斷,否則會再次被熔斷。異常比率的閾值范圍是 [0.0, 1.0],代表 0% - 100%。

● 異常數(shù)(ERROR_COUNT)

當(dāng)單位統(tǒng)計時長內(nèi)的異常數(shù)目超過閾值之后會自動進行熔斷。經(jīng)過熔斷時長后熔斷器會進入探測恢復(fù)狀態(tài)(HALF-OPEN 狀態(tài)),若接下來的一個請求成功完成(沒有錯誤)則結(jié)束熔斷,否則會再次被熔斷。

企業(yè)如何通過熔斷降級增強服務(wù)穩(wěn)定性和系統(tǒng)可用性?

DataAPI 對于熔斷降級的應(yīng)用

接下來通過實例為大家介紹熔斷降級在「袋鼠云數(shù)據(jù)服務(wù)平臺 DataAPI」內(nèi)的應(yīng)用。

熔斷

數(shù)據(jù)服務(wù)的熔斷降級是基于 Sentinel 框架實現(xiàn)的。Sentinel 對于資源的定義更偏向于服務(wù)級別,不過也提供了對于指定代碼或內(nèi)容進行資源定義。所以 DataAPI 是通過定義 APIID 作為唯一資源來進行熔斷閾值的判斷和具體熔斷動作的實施。同時,通過控制資源名稱的生成規(guī)則,測試 API 和正式 API 實現(xiàn)了環(huán)境隔離。

企業(yè)如何通過熔斷降級增強服務(wù)穩(wěn)定性和系統(tǒng)可用性?

在開發(fā)實現(xiàn)的過程中,最大的難點在于 Sentinel 原生支持限流策略的集群控制,但是不支持熔斷策略的集群控制。DataAPI 采用的方法是采用主節(jié)點的方式去實現(xiàn)集群的控制,主要有以下兩點內(nèi)容。

● 熔斷規(guī)則如何只加載到主節(jié)點上

首先,熔斷策略基于內(nèi)存是通過 DegradeRuleManager 加載的,既然是基于內(nèi)存那么必然要做持久化動作,否則程序重啟規(guī)則就會清空。這里采用了 MySQL 建立熔斷規(guī)則表的方式進行規(guī)則詳情的修改操作。

其次啟動時通過 nacos 獲取 gateway 實例列表并選取主節(jié)點,調(diào)用 nacos 的 namingService.getAllInstance 方法可以獲取到所有的 gateway 實例。選取第一個健康的 gateway 實例為主節(jié)點,將主節(jié)點 ip 信息以 key value 的形式存儲到 redis 中,主節(jié)點重新選舉時會更新此 redis key,gateway 集群所有實例每次啟動先判斷當(dāng)前節(jié)點是否為主節(jié)點,只有主節(jié)點才會進行熔斷策略的初始化加載動作。

企業(yè)如何通過熔斷降級增強服務(wù)穩(wěn)定性和系統(tǒng)可用性?

這里針對主節(jié)點的選舉 DataAPI 是做了自動選舉的,即使當(dāng)前主節(jié)點宕機,也可以通過每分鐘一次的定時器獲取到存活的節(jié)點實例并重新選取主節(jié)點,保證高可用。當(dāng)主節(jié)點發(fā)生變更后也會發(fā)送 redis 通知給到所有節(jié)點,新的主節(jié)點收到通知后會從 MySQL 獲取當(dāng)前最新的熔斷策略加載進內(nèi)存,不過此動作會清空之前的流量統(tǒng)計,時間窗口會重置。

企業(yè)如何通過熔斷降級增強服務(wù)穩(wěn)定性和系統(tǒng)可用性?

最后,策略的修改如何同步到主節(jié)點。數(shù)據(jù)服務(wù)采用的是 redis channel 通知的方式,每臺 gateway 都監(jiān)聽 channel 消息,只有判斷當(dāng)前節(jié)點為主節(jié)點的 gateway 才進行內(nèi)存規(guī)則的 load 操作。

● 集群閾值判定

通過主節(jié)點進行規(guī)則加載和閾值判斷,集群所有示例都正常執(zhí)行 API 請求,只有閾值判斷會發(fā)起 http 請求到主節(jié)點進行判斷,并返回是否通過結(jié)果,整體工作流程圖如下:

企業(yè)如何通過熔斷降級增強服務(wù)穩(wěn)定性和系統(tǒng)可用性?

閾值判定一共分為兩種模式:

· 錯誤模式,也可細(xì)分為錯誤數(shù)或者錯誤率

· 慢調(diào)用模式,指慢調(diào)用請求占比

由于判斷主節(jié)點為實例B,但是錯誤發(fā)生在實例A/C,所以在實例B是需要手動去產(chǎn)生異常或者慢調(diào)用的。當(dāng)節(jié)點請求發(fā)生異常后主節(jié)點收到異常標(biāo)志位,則手動拋出異常,這時候 Sentinel 是可以感知的并且異常數(shù)會加一。慢調(diào)用則是通過修改請求的 complateTime 讓計數(shù)器能夠判斷到慢調(diào)用來實現(xiàn)。

企業(yè)如何通過熔斷降級增強服務(wù)穩(wěn)定性和系統(tǒng)可用性?

降級

用于可在 API 編輯頁面進行降級內(nèi)容的配置,配置條件為需先配置熔斷策略,當(dāng)熔斷器處于開啟狀態(tài)時 gateway 會返回完全由用戶自定義的降級內(nèi)容,該內(nèi)容必須為 json 格式。

降級最主要解決的是資源不足和訪問量增加的矛盾,在有限的資源情況下,可以應(yīng)對高并發(fā)大量請求。尤其當(dāng) API 配置被訪問的數(shù)據(jù)源無法承載大流量時,在有限的資源情況下,想要達(dá)到以上效果就需要對一些服務(wù)功能進行一些限制但是又不是完全的不可用狀態(tài),系統(tǒng)將返回預(yù)設(shè)的值,保證整個系統(tǒng)能夠平穩(wěn)運行。

企業(yè)如何通過熔斷降級增強服務(wù)穩(wěn)定性和系統(tǒng)可用性?

降級的代碼實現(xiàn)相對簡單,判斷條件生效后,通過重寫 ServerWebExchange 對象的 Response 即可。

《數(shù)棧產(chǎn)品白皮書》下載地址:https://www.dtstack.com/resources/1004?src=szsm

《數(shù)據(jù)治理行業(yè)實踐白皮書》下載地址:https://www.dtstack.com/resources/1001?src=szsm

想了解或咨詢更多有關(guān)大數(shù)據(jù)產(chǎn)品、行業(yè)解決方案、客戶案例的朋友,瀏覽袋鼠云官網(wǎng):https://www.dtstack.com/?src=szbky文章來源地址http://www.zghlxwxcb.cn/news/detail-752010.html

到了這里,關(guān)于企業(yè)如何通過熔斷降級增強服務(wù)穩(wěn)定性和系統(tǒng)可用性?的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實不符,請點擊違法舉報進行投訴反饋,一經(jīng)查實,立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費用

相關(guān)文章

  • Hystrix入門使用 服務(wù)熔斷 服務(wù)降級 服務(wù)雪崩

    Hystrix入門使用 服務(wù)熔斷 服務(wù)降級 服務(wù)雪崩

    hystrix停止更新,理念優(yōu)秀。 分布式系統(tǒng)面臨的問題: 對于復(fù)雜的分布式體系,有數(shù)十個依賴,依賴不可避免的錯誤。 服務(wù)會出現(xiàn)雪崩, 高可用受到破壞 。 Hystrix就是用于解決分布式系統(tǒng)延遲和容錯的開源庫。 保證在一個依賴出現(xiàn)問題,不會導(dǎo)致整體的服務(wù)失敗,避免級聯(lián)故

    2024年02月07日
    瀏覽(30)
  • 簡單理解微服務(wù)限流、降級、熔斷

    簡單理解微服務(wù)限流、降級、熔斷

    微服務(wù)限流、降級、熔斷分別都是什么意思,我們平時工作中為什么要關(guān)注這些東西呢? 公司不斷的發(fā)展壯大,一開始處于蠻荒時代,咱們從單體應(yīng)用過渡到微服務(wù)的時候,可能還是那一套單體的思想,再加上用戶量可能也不多,直接就不去考慮起量了之后,我們需要如何處

    2024年02月09日
    瀏覽(23)
  • 【SpringCloud】2.微服務(wù)的熔斷和降級

    【SpringCloud】2.微服務(wù)的熔斷和降級

    在 上篇博客,我們完成了項目的基本搭建工作,那這篇博客就來實現(xiàn)一下微服務(wù)的熔斷和降級。 1.1 發(fā)生場景 在前面,我們用 springcloud-service-consumer 這個服務(wù)消費者調(diào)用 springcloud-service-provider 這個服務(wù)提供者的接口,現(xiàn)在我們假設(shè)一種情況,如果某天服務(wù)提供者宕機了,它的

    2024年02月09日
    瀏覽(16)
  • 微服務(wù)篇之雪崩、降級和熔斷

    微服務(wù)篇之雪崩、降級和熔斷

    ? ? ? ? 服務(wù)雪崩: 一個服務(wù)失敗,導(dǎo)致整條鏈路的服務(wù)都失敗的情形。 ???????? 服務(wù)降級 是服務(wù)自我保護的一種方式,或者保護下游服務(wù)的一種方式,用于確保服務(wù)不會受請求突增影響變得不可用,確保服務(wù)不會崩潰。 ????????Hystrix 熔斷機制,用于監(jiān)控微服務(wù)調(diào)

    2024年02月22日
    瀏覽(16)
  • 微服務(wù)中的熔斷、降級和限流

    在現(xiàn)代微服務(wù)架構(gòu)中,熔斷、降級和限流是保障系統(tǒng)穩(wěn)定性和可靠性的重要手段。本文將深入探討這三種機制在微服務(wù)架構(gòu)中的作用、原理以及實踐方法。 1.1 作用和原理 熔斷器是一種可以在服務(wù)發(fā)生故障時快速中斷請求的機制,防止故障蔓延到整個系統(tǒng)。當(dāng)服務(wù)出現(xiàn)異?;?/p>

    2024年02月22日
    瀏覽(23)
  • SpringCloud(四)Hystrix服務(wù)降級、熔斷、監(jiān)控頁面

    SpringCloud(四)Hystrix服務(wù)降級、熔斷、監(jiān)控頁面

    官方文檔:https://cloud.spring.io/spring-cloud-static/spring-cloud-netflix/1.3.5.RELEASE/single/spring-cloud-netflix.html#_circuit_breaker_hystrix_clients 我們知道,微服務(wù)之間是可以進行相互調(diào)用的,那么如果出現(xiàn)了下面的情況會導(dǎo)致什么問題? 由于位于最底端的服務(wù)提供者E發(fā)生故障,那么此時會直接導(dǎo)

    2024年02月17日
    瀏覽(25)
  • 舞動微服務(wù)的安全舞伴:服務(wù)熔斷與服務(wù)降級的精妙演繹

    目錄 引言 1、服務(wù)熔斷:避免連鎖反應(yīng)的舞姿 1.1 什么是服務(wù)熔斷? 1.2服務(wù)熔斷的工作原理 場景:支付服務(wù)的重要性 1. 監(jiān)控支付服務(wù) 2. 設(shè)定閾值 3. 熔斷器狀態(tài) 4. 觸發(fā)熔斷 5. 定時檢測 6. 自動恢復(fù) 1.3解析 2、服務(wù)降級:優(yōu)雅的后退舞步 2.1什么是服務(wù)降級? 2.2服務(wù)降級原理

    2024年01月22日
    瀏覽(19)
  • 微服務(wù):Springboot集成Hystrix實現(xiàn)熔斷、降級、隔離

    微服務(wù):Springboot集成Hystrix實現(xiàn)熔斷、降級、隔離

    在分布式微服務(wù)的項目中,常常會有多個服務(wù)復(fù)用,產(chǎn)生多個服務(wù)調(diào)用的情況。比如A服務(wù)調(diào)用B服務(wù),B服務(wù)調(diào)用C服務(wù)。服務(wù)調(diào)用鏈路長了必然會增加服務(wù)超時的概率,服務(wù)的超時阻塞會一直占用線程資源,大量的阻塞會直接消耗完服務(wù)線程,嚴(yán)重情況下會導(dǎo)致服務(wù)直接宕機從

    2024年02月12日
    瀏覽(19)
  • 【微服務(wù)筆記10】微服務(wù)組件之Hystrix實現(xiàn)服務(wù)降級和服務(wù)熔斷

    【微服務(wù)筆記10】微服務(wù)組件之Hystrix實現(xiàn)服務(wù)降級和服務(wù)熔斷

    這篇文章,主要介紹微服務(wù)組件之Hystrix實現(xiàn)服務(wù)降級和服務(wù)熔斷。 目錄 一、服務(wù)降級 1.1、什么是服務(wù)降級 1.2、實現(xiàn)服務(wù)降級 (1)引入依賴 (2)編寫Service層代碼 (3)編寫Controller層代碼 (4)運行測試 (5)fallbackMethod屬性 二、服務(wù)熔斷 2.1、什么是服務(wù)熔斷 2.2、實現(xiàn)服務(wù)

    2023年04月11日
    瀏覽(21)
  • 第27天-熔斷,降級,限流,網(wǎng)關(guān)流控,服務(wù)鏈路追蹤

    第27天-熔斷,降級,限流,網(wǎng)關(guān)流控,服務(wù)鏈路追蹤

    1.1.1.熔斷 A服務(wù)調(diào)用B服務(wù)某個功能,由于網(wǎng)絡(luò)不穩(wěn)定問題,或者B服務(wù)卡機,導(dǎo)致功能時間超長。如果這樣的次數(shù)太多,我們就可以直接將B服務(wù)斷路(A不再請求B接口),凡是調(diào)用B服務(wù)就直接返回降級數(shù)據(jù),不必等待B服務(wù)的超長執(zhí)行,這樣B服務(wù)的故障問題,就不會級聯(lián)影響到

    2024年02月15日
    瀏覽(23)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包