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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

熔断及算法

發布時間:2024/3/13 编程问答 110 豆豆
生活随笔 收集整理的這篇文章主要介紹了 熔断及算法 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

熔斷與雪崩

上游服務切斷或減緩對下游服務的訪問。

熔斷這一概念來源于電子工程中的斷路器(Circuit Breaker)。在互聯網系統中,當下游服務因訪問壓力過大而響應變慢或失敗,上游服務為了保護系統整體的可用性,可以暫時切斷對下游服務的調用。犧牲局部,保全整體的措施就叫做熔斷。

假設當前系統中有A,B,C三個服務,服務A是上游,服務B是中游,服務C是下游。一旦下游服務C因某些原因變得不可用,堆積大量的請求,服務B的請求線程也隨之阻塞。線程資源逐漸耗盡,使得服務B也變得不可用。緊接著,服務A也變為不可用,整個調用鏈路被拖垮。這種調用鏈路的連鎖故障叫做雪崩。

服務熔斷是應對雪崩效應的一種微服務鏈路保護機制。例如在高壓電路中,如果某個地方的電壓過高,熔斷器就會熔斷,對電路進行保護。同樣,在微服務架構中,熔斷機制也是起著類似的作用。當調用鏈路的某個微服務不可用或者響應時間太長時,會進行服務熔斷,不再有該節點微服務的調用,快速返回錯誤的響應信息。當檢測到該節點微服務調用響應正常后,恢復調用鏈路。

一種簡單的思路

用單位時間內總請求數與成功或失敗請求數之比來確定是否熔斷,單位時間請求次數的計算可以使用粒度較小的滑動窗口。熔斷的狀態可以有open、half-open或closed,當消耗完堆積的請求后,就可以調整成closed狀態,進行正常的服務。

熔斷算法與框架

Google sre彈性熔斷算法:https://sre.google/sre-book/handling-overload/#eq2101

Google sre彈性熔斷算法的實踐:
bilibili kratos:https://github.com/go-kratos/kratos/tree/v1.0.x/pkg/net/netutil/breaker
go-zero:https://github.com/zeromicro/go-zero/tree/master/core/breaker

Hystrix:https://github.com/Netflix/Hystrix
hystrix-go:https://github.com/afex/hystrix-go

gobreaker:https://github.com/sony/gobreaker

Reference

https://en.wikipedia.org/wiki/Circuit_breaker_design_pattern

https://blog.51cto.com/u_15197573/5163214

https://mp.weixin.qq.com/s?__biz=MzU0OTE4MzYzMw==&mid=2247506440&idx=4&sn=5719c4fa0b9c80ed2ea0ab3c35d19a6b&chksm=fbb153f6ccc6dae02cf5caae458cd245bde5ecf9ca3aa2905eab9a47cc4586064928ef82a314&scene=27

https://landscape.cncf.io/

總結

以上是生活随笔為你收集整理的熔断及算法的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。