日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

hystrix断路器引发的相关概念

發(fā)布時間:2023/12/10 编程问答 32 豆豆
生活随笔 收集整理的這篇文章主要介紹了 hystrix断路器引发的相关概念 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

1 分布式系統(tǒng)面臨的問題

  • 服務(wù)雪崩
    多個微服務(wù)之間調(diào)用的時候,假設(shè)微服務(wù)A調(diào)用微服務(wù)B和微服務(wù)C,微服務(wù)B和微服務(wù)C又調(diào)用其它的微服務(wù),這就是所謂的"扇出”,如果扇出的鏈路上某個微服務(wù)的調(diào)用響應(yīng)時間過長或者不可用,對微服務(wù)A的調(diào)用就會占用越來越多的系統(tǒng)資源,進而引起系統(tǒng)崩潰,所謂的“雪崩效應(yīng)”,對于高流量的應(yīng)用來說,單一 的后端依賴可能會導(dǎo)致所有服務(wù)器上的所有資源都在幾秒鐘內(nèi)飽和。比失敗更糟糕的是,這些應(yīng)用程序還可能導(dǎo)致服務(wù)之間的延遲增加,備份隊列,線程和其他系統(tǒng)資源緊張,導(dǎo)致整個系統(tǒng)發(fā)生更多的級聯(lián)故障。這些都表示需要對故障和延遲進行隔離和管理,以便單個依賴關(guān)系的失敗,不能取消整個應(yīng)用程序或系統(tǒng)。所以, 通常當(dāng)你發(fā)現(xiàn)一個模塊下的某個實例失敗后,這時候這個模塊依然還會接收流量,然后這個有問題的模塊還調(diào)用了其他的模塊,這樣就會發(fā)生級聯(lián)故障,或者叫雪崩。
  • 2 什么是hystrix

    Hystrix是一個用于處理分布式系統(tǒng)的延遲和容錯的開源庫, 在分布式系統(tǒng)里,許多依賴不可避免的會調(diào)用失敗,比如超時、異常等,
    Hystrix能夠保證在一個依賴出問題的情況下, 不會導(dǎo)致整體服務(wù)失敗,避免級聯(lián)故障,以提高分布式系統(tǒng)的彈性。
    “斷路器”本身是一種開關(guān)裝置,當(dāng)某個服務(wù)單元發(fā)生故障之后,通過斷路器的故障監(jiān)控(類似熔斷保險絲) , 向調(diào)用方返回一個符合
    預(yù)期的、可處理的備選響應(yīng)(FallBack)
    而不是長時間的等待或者拋出調(diào)用方無法處理的異常,這樣就保證了服務(wù)調(diào)用方的線程不會
    被長時間、不必要地占用,從而避免了故障在分布式系統(tǒng)中的蔓延,乃至雪崩。

    可以干嘛
    https://github.com/Netflix/Hystrix/wiki/How-To-Use

    1. 服務(wù)降級 2. 服務(wù)熔斷 3. 實時監(jiān)控

    3 服務(wù)降級,熔斷,限流的區(qū)別

    服務(wù)降級
    服務(wù)器忙,請稍候再試,不讓客戶端等待并立刻返回一個友好提示,fallback

    哪些情況會觸發(fā)降級:

    • 超時
    • 異常
    • 宕機
    • 服務(wù)熔斷
    • 線程池/信號量打滿

    服務(wù)熔斷
    保險絲關(guān)閉,斷開,半開.

    類比保險絲達到最大服務(wù)訪問后,直接拒絕訪問,拉閘限電, 然后調(diào)用服務(wù)降級的方法并返回友好提示服務(wù)的降級->進而熔斷->恢復(fù)調(diào)用鏈路

    斷路器在什么情況下開始起作用

    涉及到斷路器的三個重要參數(shù):快照時間窗、請求總數(shù)閥值、錯誤百分比閥值。
    1:快照時間窗:斷路器確定是否打開需要統(tǒng)計一 些請求和錯誤數(shù)據(jù),而統(tǒng)計的時間范圍就是快照時間窗,默認為最近的10秒。
    2: 請求總數(shù)閥值:在快照時間窗內(nèi),必須滿足請求總數(shù)閥值才有資格熔斷。默認為20,意味著在10秒內(nèi),如果該hystrix命令的調(diào)用次數(shù)不足20次,
    即使所有的請求都超時或其他原因失敗,斷路器都不會打開。
    3:錯誤百分比閥值:當(dāng)請求總數(shù)在快照時間窗內(nèi)超過了閥值,比如發(fā)生了30次調(diào)用,如果在這30次調(diào)用中,有15次發(fā)生了超時異常,也就是超過
    50%的錯誤百分比,在默認設(shè)定50%閥值情況下,這時候就會將斷路器打開。


    斷路器開啟或者關(guān)閉的條件

    1. 當(dāng)滿足一定閥值的時候(默認10秒內(nèi)超過20個請求次數(shù)) 2. 當(dāng)失敗率達到一定的時候(默認10秒內(nèi)超過50%請求失敗) 3. 到達以上閥值,斷路器將會開啟 4. 當(dāng)開啟的時候,所有請求都不會進行轉(zhuǎn)發(fā) 5. 一段時間之后(默認是5秒),這個時候斷路器是半開狀態(tài),會讓其中一個請求進行轉(zhuǎn)發(fā)。如果成功,斷路器會關(guān)閉,若失敗,繼續(xù)開啟。重復(fù)4和5

    斷路器打開后

    1:再有請求調(diào)用的時候,將不會調(diào)用主邏輯,而是直接調(diào)用降級fallback.通過斷路器,實現(xiàn)了自動地發(fā)現(xiàn)錯誤并將降級邏輯切換為主邏輯,減少響 應(yīng)延遲的效果。 2:原來的主邏輯要如何恢復(fù)呢? 對于這- -問題,hystrix也為我們實現(xiàn)了 自動恢復(fù)功能。 當(dāng)斷路器打開,對主邏輯進行熔斷之后, hystrix會啟動一個休眠時間窗,在這個時間窗內(nèi), 降級邏輯是臨時的成為主邏輯,當(dāng)休眠時間窗到期,斷路器將進入半開狀態(tài), 釋放一次請求到原來的主邏輯上,如果此次請求正常返回, 那么斷路器將繼續(xù)閉合, 主邏輯恢復(fù),如果這次請求依然有問題, 斷路器繼續(xù)進入打開狀態(tài),休眠時間窗重新計時。

    服務(wù)限流

    秒殺高并發(fā)等操作,嚴禁一窩蜂的過來擁擠,大家排隊,一秒鐘N個,有序進行

    hystrix dashboard

    除了隔離依賴服務(wù)的調(diào)用以外,Hystrix還提供 了準實時的調(diào)用監(jiān)控(Hystrix Dashboard),Hystrix會持續(xù)地記錄所有通過Hystrix發(fā) 起的請求的執(zhí)行信息,擬統(tǒng)計報表和圖形的形式展示給用戶,包括每秒執(zhí)行多少請求多少成功,多少失敗等。Netflix通過 hystrix-metrics-event-stream項目實現(xiàn)了對以上指標的監(jiān)控。 Spring Cloud也提供了Hystrix Dashboard的整合,對監(jiān)控內(nèi)容轉(zhuǎn)化成 可視化界面。

    總結(jié)

    以上是生活随笔為你收集整理的hystrix断路器引发的相关概念的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。