RPC框架Pigeon簡析(五)-- 熔斷和降級

熔斷機(jī)制(Circuit Breaker),也叫斷路器設(shè)計(jì)模式。具體可以參見大神的文章

如果要熔斷,客戶端首先需要知道服務(wù)是否可用。pigeon會定時發(fā)送心跳包,通過服務(wù)端返回的情況來確定,服務(wù)端是否可用,類似ping-pong請求。當(dāng)ping-pong的失敗率超過某一個閾值后,將會通過配置參數(shù)來確定是否自動摘除相對應(yīng)的節(jié)點(diǎn),同時斷開與服務(wù)端的連接。客戶端還有一個定時任務(wù)會重連這些斷開的連接,重連后將會再次進(jìn)行心跳檢測,如果成功就會將這個服務(wù)重新加入到可用服務(wù)節(jié)點(diǎn)中去。

其實(shí)之前的設(shè)計(jì)本不是這樣,之前會對同一個服務(wù)的不同實(shí)例進(jìn)行檢測,如果心跳有問題也會pickoff。但是一開始考慮全部掛掉是個小概率事件,或者說是檢測本身可能有問題,所以當(dāng)摘除節(jié)點(diǎn)數(shù)大于所有實(shí)例數(shù)的50%以上時,將不再摘除節(jié)點(diǎn)。可是在實(shí)際的應(yīng)用過程中,發(fā)現(xiàn)某個服務(wù)的全部實(shí)例掛掉是非常常見的事情,這種不摘除干凈的做法和容易引起大面積服務(wù)掛掉,故最新的版本做了修改,更新為前述的熔斷方式。

降級,

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

推薦閱讀更多精彩內(nèi)容

  • Spring Cloud為開發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見模式的工具(例如配置管理,服務(wù)發(fā)現(xiàn),斷路器,智...
    卡卡羅2017閱讀 134,923評論 18 139
  • Redis Cluster原理分析 文章較長,如需轉(zhuǎn)載可分段。轉(zhuǎn)載請標(biāo)明作者以及文章來源,謝謝! 作者介紹 姓名:...
    lihanglucien閱讀 20,549評論 3 30
  • 基本目標(biāo)與設(shè)計(jì)基本思想 Redis cluster 目標(biāo) 高性能,并且能線性擴(kuò)展到1000個節(jié)點(diǎn)。不需要代理,使用...
    tafeng閱讀 2,804評論 0 0
  • 本文將從設(shè)計(jì)思路,功能實(shí)現(xiàn),源碼幾個方面介紹Redis Cluster。假設(shè)讀者已經(jīng)了解Redis Cluster...
    CatKang閱讀 1,477評論 0 2
  • 開始講之前,先推薦大牛的文章讓大家去了解一下rxjava 扔物線大神 http://gank.io/post/56...
    MrAllRight_Liu閱讀 1,509評論 0 7