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

【Sentinel】Sentinel與gateway的限流算法

這篇具有很好參考價(jià)值的文章主要介紹了【Sentinel】Sentinel與gateway的限流算法。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問(wèn)。

1、Sentinel與Hystrix的區(qū)別

線程隔離有兩種方式實(shí)現(xiàn):

  • 線程池隔離(Hystrix默認(rèn)采用)
  • 信號(hào)量隔離(Sentinel默認(rèn)采用)

【Sentinel】Sentinel與gateway的限流算法,Sentinel,sentinel,gateway,算法,限流

服務(wù)I需要遠(yuǎn)程調(diào)用服務(wù)A、服務(wù)B,則創(chuàng)建兩個(gè)線程池,分別用來(lái)處理服務(wù)I–>服務(wù)A,和服務(wù)I–>服務(wù)B的請(qǐng)求。和線程池隔離不同的是,信號(hào)量隔離比較輕量級(jí),就維護(hù)一個(gè)計(jì)數(shù)器就好,不用去維護(hù)線程數(shù)量。二者的優(yōu)缺點(diǎn)來(lái)說(shuō),線程池隔離的優(yōu)點(diǎn)是:

  • 支持主動(dòng)超時(shí):線程是我定義的,我自己可以來(lái)中斷、超時(shí)
  • 支持異步調(diào)用

缺點(diǎn)則是:

  • 線程的額外開(kāi)銷比較大

【Sentinel】Sentinel與gateway的限流算法,Sentinel,sentinel,gateway,算法,限流
總結(jié)就是:

Hystix默認(rèn)是基于線程池實(shí)現(xiàn)的線程隔離,每一個(gè)被隔離的業(yè)務(wù)都要?jiǎng)?chuàng)建一個(gè)獨(dú)立的線程池,線程過(guò)多會(huì)帶來(lái)額外的CPU開(kāi)銷,性能一般,但是隔離性更強(qiáng)

Sentinel是基于信號(hào)量(計(jì)數(shù)器)實(shí)現(xiàn)的線程隔離,不用創(chuàng)建線程池,性能較好,但是隔離性一般。

2、限流算法

限流:對(duì)應(yīng)用服務(wù)器的請(qǐng)求做限制,避免因過(guò)多請(qǐng)求而導(dǎo)致服務(wù)器過(guò)載甚至宕機(jī)。

限流算法常見(jiàn)的包括兩種:

  • 計(jì)數(shù)器算法,又包括窗口計(jì)數(shù)器算法、滑動(dòng)窗口計(jì)數(shù)器算法
  • 令牌桶算法(Token Bucket)
  • 漏桶算法(Leaky Bucket)

計(jì)數(shù)器算法之固定窗口計(jì)數(shù)器算法:

固定窗口計(jì)數(shù)器的實(shí)現(xiàn)為:

  • 將時(shí)間劃分為多個(gè)窗口,窗口的時(shí)間跨度稱為Interval,比如取1000ms
  • 每個(gè)窗口維護(hù)一個(gè)計(jì)數(shù)器,每有一次請(qǐng)求就將計(jì)數(shù)器加一,限流就是設(shè)置計(jì)數(shù)器閾值,本例為3
  • 當(dāng)該窗口所在時(shí)間里,請(qǐng)求數(shù)超過(guò)閾值,則超出部分的請(qǐng)求直接都被丟棄

【Sentinel】Sentinel與gateway的限流算法,Sentinel,sentinel,gateway,算法,限流

固定窗口計(jì)數(shù),有個(gè)問(wèn)題就是:如下圖,當(dāng)4000-5000ms的前500ms沒(méi)請(qǐng)求,4500-5000ms剛好三個(gè)請(qǐng)求,此時(shí),未達(dá)閾值。5000-6000ms中,前500ms有三個(gè)請(qǐng)求,后500ms沒(méi)請(qǐng)求,則5000-6000也未達(dá)閾值。但從4500-5500ms這一秒,則有6個(gè)請(qǐng)求,如果服務(wù)真的最多只能承受QPS3,則這樣服務(wù)可能宕機(jī)。

【Sentinel】Sentinel與gateway的限流算法,Sentinel,sentinel,gateway,算法,限流

計(jì)數(shù)器算法之滑動(dòng)窗口計(jì)數(shù)器算法:

滑動(dòng)窗口計(jì)數(shù)器算法會(huì)將一個(gè)窗口劃分為n個(gè)更小的區(qū)間:(在窗口的基礎(chǔ)上引入?yún)^(qū)間的概念)

  • 窗口時(shí)間跨度Interval為1秒;區(qū)間數(shù)量 n = 2 ,則每個(gè)小區(qū)間時(shí)間跨度為500ms
  • 限流閾值依然為3,時(shí)間窗口(1秒)內(nèi)請(qǐng)求超過(guò)閾值時(shí),超出的請(qǐng)求被限流
  • 此時(shí)的窗口不再是固定的1000-2000ms或者1500-2500ms,而是 根據(jù)當(dāng)前請(qǐng)求所在時(shí)間(currentTime)移動(dòng) ,這個(gè)滑動(dòng)窗口范圍是從(currentTime減去Interval)之后的第一個(gè)時(shí)區(qū)開(kāi)始,到currentTime所在時(shí)區(qū)結(jié)束,來(lái)做為統(tǒng)計(jì)的窗口

【Sentinel】Sentinel與gateway的限流算法,Sentinel,sentinel,gateway,算法,限流

舉個(gè)例子:如上圖,比如1250ms有個(gè)請(qǐng)求進(jìn)來(lái),則1250-1000=250,250ms之后的第一個(gè)時(shí)區(qū)則是500到1000區(qū)間,1250ms自身所在時(shí)區(qū)為1000到1500ms,所以對(duì)應(yīng)的滑動(dòng)窗口就是500到1500ms這個(gè)時(shí)區(qū)。(圖中紫色虛線)

【Sentinel】Sentinel與gateway的限流算法,Sentinel,sentinel,gateway,算法,限流
如上圖,再往后,1300ms有個(gè)請(qǐng)求,此時(shí),滑動(dòng)窗口計(jì)算后還是500-1500ms,這個(gè)窗口當(dāng)前共有三個(gè)請(qǐng)求,分別在900ms、1250ms、1300ms到達(dá)。此時(shí)1400ms再來(lái)一個(gè),滑動(dòng)窗口計(jì)算后還是500-1500ms,但顯然這個(gè)窗口QPS已經(jīng)到3了,1400ms的請(qǐng)求會(huì)被丟棄。到此,固定窗口的統(tǒng)計(jì)問(wèn)題得到了解決。

【Sentinel】Sentinel與gateway的限流算法,Sentinel,sentinel,gateway,算法,限流
再往后,2100ms,則計(jì)算后,滑動(dòng)窗口在1500到2500ms(紫色虛線),未達(dá)QPS閾值,但看1250ms到2100ms這850ms的時(shí)間,不到一個(gè)窗口時(shí)間跨度Interval,卻有4個(gè)請(qǐng)求 > 3 。這個(gè)就是區(qū)間劃分的問(wèn)題了,區(qū)間越小,則限流越準(zhǔn)。 比如以125ms為一個(gè)區(qū)間,2100-1000=1100,在1000到1125區(qū)間,下一個(gè)為1125到1250,所以滑動(dòng)窗口為1125到2125ms,這個(gè)窗口已有1250、1300、1600到的三個(gè)請(qǐng)求,因此2100會(huì)被丟棄。

當(dāng)然,不管這個(gè)區(qū)間多小,總有可能有卡邊界前后請(qǐng)求導(dǎo)致QPS超過(guò)的情況??紤]上現(xiàn)實(shí)世界,這個(gè)窗口是沒(méi)必要設(shè)置成極限值的,比如1ms,差不多100ms就已經(jīng)可以解決大多情況。

令牌桶算法:

  • 以固定的速率生成令牌,存入令牌桶中,如果令牌桶滿了以后,多余令牌丟棄
  • 請(qǐng)求進(jìn)入后,必須先嘗試從桶中獲取令牌,獲取到令牌后才可以被處理
  • 如果令牌桶中沒(méi)有令牌,則請(qǐng)求等待或丟棄

【Sentinel】Sentinel與gateway的限流算法,Sentinel,sentinel,gateway,算法,限流

漏桶算法:

  • 將每個(gè)請(qǐng)求視作"水滴"放入"漏桶"進(jìn)行存儲(chǔ)
  • "漏桶"以固定速率向外"漏"出請(qǐng)求來(lái)執(zhí)行,如果"漏桶"空了則停止"漏水”
  • 如果"漏桶"滿了則多余的"水滴"會(huì)被直接丟棄
  • 可以理解成請(qǐng)求在桶內(nèi)排隊(duì)等待

【Sentinel】Sentinel與gateway的限流算法,Sentinel,sentinel,gateway,算法,限流
Sentinel在實(shí)現(xiàn)漏桶算法時(shí),采用了排隊(duì)等待模式。讓所有請(qǐng)求進(jìn)入一個(gè)隊(duì)列中,然后按照閾值允許的時(shí)間間隔依次執(zhí)行。并發(fā)的多個(gè)請(qǐng)求必須等待,預(yù)期的等待時(shí)長(zhǎng) =最近一次請(qǐng)求的預(yù)期等待時(shí)間 + 允許的間隔。如果請(qǐng)求預(yù)期的等待時(shí)間超出最大時(shí)長(zhǎng),則會(huì)被拒絕。

例如:
- QPS = 5,意味著每200ms處理一個(gè)隊(duì)列中的請(qǐng)求;
- timeout = 2000,意味著預(yù)期等待超過(guò)2000ms的請(qǐng)求會(huì)被拒絕并拋出異常

【Sentinel】Sentinel與gateway的限流算法,Sentinel,sentinel,gateway,算法,限流

3、限流算法對(duì)比

因?yàn)橛?jì)數(shù)器算法一般都會(huì)采用滑動(dòng)窗口計(jì)數(shù)器,所以這里我們對(duì)比三種算法:

【Sentinel】Sentinel與gateway的限流算法,Sentinel,sentinel,gateway,算法,限流

4、Sentinel限流與Gateway限流

限流算法常見(jiàn)的有三種實(shí)現(xiàn):滑動(dòng)時(shí)間窗口、令牌桶算法、漏桶算法。Gateway則采用了基于Redis實(shí)現(xiàn)的令牌桶算法。而Sentinel內(nèi)部卻比較復(fù)雜:文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-699546.html

  • 默認(rèn)限流模式是基于滑動(dòng)時(shí)間窗口算法
  • 排隊(duì)等待的限流模式則基于漏桶算法
  • 而熱點(diǎn)參數(shù)限流則是基于令牌桶算法

到了這里,關(guān)于【Sentinel】Sentinel與gateway的限流算法的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

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

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

相關(guān)文章

  • SpringCloud之Gateway整合Sentinel服務(wù)降級(jí)和限流

    SpringCloud之Gateway整合Sentinel服務(wù)降級(jí)和限流

    1.下載Sentinel.jar可以圖形界面配置限流和降級(jí)規(guī)則 地址:可能需要翻墻 下載jar文件 2.引入maven依賴 3.寫(xiě)個(gè)自動(dòng)注入Resource的過(guò)濾器類(可以不寫(xiě)注解直接使用) 4.寫(xiě)配置文件 application.properties 5.cmd命令行啟動(dòng)jar文件訪問(wèn)localhost:18080頁(yè)面,自己設(shè)置QPS java -jar -server.port=18080 sentinel-dash

    2024年02月07日
    瀏覽(24)
  • 【SpringCloud】11、Spring Cloud Gateway使用Sentinel實(shí)現(xiàn)服務(wù)限流

    1、關(guān)于 Sentinel Sentinel 是阿里巴巴開(kāi)源的一個(gè)流量防衛(wèi)防護(hù)組件,可以為微服務(wù)架構(gòu)提供強(qiáng)大的流量防衛(wèi)能力,包括流量控制、熔斷降級(jí)等功能。Spring Cloud Gateway 與 Sentinel 結(jié)合,可以實(shí)現(xiàn)強(qiáng)大的限流功能。 Sentinel 具有以下特性: 豐富的應(yīng)用場(chǎng)景:Sentinel 承接了阿里巴巴近

    2024年02月01日
    瀏覽(23)
  • 只需三步實(shí)現(xiàn)Gateway結(jié)合Sentinel實(shí)現(xiàn)無(wú)侵入網(wǎng)關(guān)限流,注意避坑!

    只需三步實(shí)現(xiàn)Gateway結(jié)合Sentinel實(shí)現(xiàn)無(wú)侵入網(wǎng)關(guān)限流,注意避坑!

    前言:本文基于您已有基礎(chǔ)的可運(yùn)行的微服務(wù)系統(tǒng),使用了Sping Cloud Alibaba,Gateway,Nacos等;目標(biāo)實(shí)現(xiàn)網(wǎng)關(guān)流控類型的限流。 顧名思義限流用于在高并發(fā)場(chǎng)景下限制請(qǐng)求流量的進(jìn)入,保護(hù)系統(tǒng)不被沖垮。阿里巴巴的開(kāi)源sentinel可以通過(guò)設(shè)置不同種類規(guī)則實(shí)現(xiàn)對(duì)不同的資源的保護(hù)

    2024年02月08日
    瀏覽(16)
  • Sentinel dashboard的使用;Nacos保存Sentinel限流規(guī)則

    Sentinel dashboard的使用;Nacos保存Sentinel限流規(guī)則

    Nacos環(huán)境搭建 Nacos注冊(cè)中心的使用 Nacos配置中心的使用 Sentinel 容災(zāi)中心的使用 Sentinel · alibaba/spring-cloud-alibaba Wiki · GitHub github地址:Sentinel/sentinel-dashboard at master · alibaba/Sentinel · GitHub 創(chuàng)建sentinel-dashboard的啟動(dòng)腳本,并添加如下信息: 目錄: 注意:sentinel-dashboard默認(rèn)會(huì)在87

    2024年02月15日
    瀏覽(18)
  • Sentinel 降級(jí)、限流、熔斷

    Sentinel 降級(jí)、限流、熔斷

    在現(xiàn)代分布式系統(tǒng)中,如何有效地保護(hù)系統(tǒng)免受突發(fā)流量和故障的影響,是每個(gè)開(kāi)發(fā)人員和架構(gòu)師都需要思考的重要問(wèn)題。在這樣的背景下,Sentinel作為一個(gè)強(qiáng)大的系統(tǒng)保護(hù)和控制組件,為我們提供了降級(jí)、限流、熔斷等多種策略,幫助我們更好地保障系統(tǒng)的穩(wěn)定性和可用性

    2024年01月24日
    瀏覽(24)
  • Sentinel限流、熔斷

    Sentinel限流、熔斷

    ????????sentinel 提供了兩種不同的隔離機(jī)制:信號(hào)量隔離和線程池隔離,它們的主要區(qū)別如下: 信號(hào)量隔離(Semaphore Isolation) : 原理 :信號(hào)量隔離基于計(jì)數(shù)器(或稱令牌桶)的概念。對(duì)某個(gè)資源設(shè)置一個(gè)并發(fā)訪問(wèn)的最大數(shù)量(信號(hào)量大小),當(dāng)請(qǐng)求到達(dá)時(shí),如果當(dāng)前信

    2024年01月18日
    瀏覽(25)
  • sentinel熔斷與限流

    sentinel熔斷與限流

    sentinel官網(wǎng)地址 添加鏈接描述 sentinel - github地址 添加鏈接描述 隨著微服務(wù)的流行,服務(wù)和服務(wù)之間的穩(wěn)定性變得越來(lái)越重要。Sentinel 以流量為切入點(diǎn),從流量控制、流量路由、熔斷降級(jí)、系統(tǒng)自適應(yīng)過(guò)載保護(hù)、熱點(diǎn)流量防護(hù)等多個(gè)維度保護(hù)服務(wù)的穩(wěn)定性。 Sentinel 具有以下特

    2024年02月02日
    瀏覽(24)
  • Sentinel針對(duì)IP限流

    Sentinel針對(duì)IP限流

    改造限流策略的針對(duì)來(lái)源選項(xiàng) 設(shè)置規(guī)則(只能填入一個(gè)限制IP,多個(gè)IP需要設(shè)置多條規(guī)則) ?IP流控規(guī)則 總結(jié):IP為127.0.0.1的請(qǐng)求限制為1QPS,總請(qǐng)求限制為3QPS,單個(gè)IP請(qǐng)求限制不能大于default請(qǐng)求限制,default默認(rèn)生效。 ?

    2024年02月15日
    瀏覽(18)
  • Sentinel限流--流控模式與限流效果

    Sentinel限流--流控模式與限流效果

    簇點(diǎn)鏈路就是項(xiàng)目?jī)?nèi)的調(diào)用鏈路(controller - servcie - mapper ),鏈路中被監(jiān)控的每個(gè)接口就是一個(gè)資源。 默認(rèn)情況下sentinel會(huì)監(jiān)控SpringMVC的每一個(gè)端點(diǎn)(Endpoint),Endpoint可以理解為controller中的每一個(gè)方法,每一個(gè)端點(diǎn)(Endpoint)就是調(diào)用鏈路中的一個(gè)資源。 流控、熔斷等都是

    2024年02月17日
    瀏覽(25)
  • Sentinel限流中間件

    Sentinel限流中間件

    目錄 介紹 Sentinel 的特征 Sentinel 的組成 實(shí)戰(zhàn)使用 簡(jiǎn)單實(shí)例 配置本地控制臺(tái) 使用可視化ui配置簡(jiǎn)單流控 配置異步任務(wù)限流 使用注解定義限流資源 SpringCloud整合Sentinel 簡(jiǎn)單整合 ?并發(fā)線程流控 關(guān)聯(lián)模式? 整合openFeign使用 隨著微服務(wù)的流行,服務(wù)和服務(wù)之間的穩(wěn)定性變得越來(lái)越

    2024年02月15日
    瀏覽(17)

覺(jué)得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請(qǐng)作者喝杯咖啡吧~博客贊助

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

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包