微服務1:微服務及其演進史
微服務2:微服務全景架構
微服務3:微服務拆分策略
微服務4:服務註冊與發現
微服務5:服務註冊與發現(實踐篇)
微服務6:通訊之閘道器
微服務7:通訊之RPC
微服務8:通訊之RPC實踐篇(附原始碼)
微服務9:服務治理來保證高可用
微服務10:系統服務熔斷、限流
微服務11:熔斷、降級的Hystrix實現(附原始碼)
微服務12:流量策略
微服務13:雲基礎場景下流量策略實現原理
微服務14:微服務治理之重試
微服務15:微服務治理之超時
在網際網路電商場景中,我們經常會遇到有計劃的流量洪峰,比如 雙11、618購物節,積分競拍和定時搶購的瘋狂場景。
這種是在預期內的,知道會發生並有一定的準備。而那些預期之外的突發流量異常,才是真正給我們帶來挑戰的部分,比如:
一般是採用限流或者熔斷:避免預期外流量或故障導致的流量洪峰引起服務雪崩,沿呼叫向上傳遞,造成整個鏈路崩潰。
限流部分,對來路流量做了限制,不允許超過預期峰值。執行過程說明:
熔斷部分,則是直接斷流,流量就不會再負載過去了。執行過程說明:
註釋比較清晰了,這邊就不解釋了。
# DestinationRule
apiVersion: networking.istio.io/v1beta1
kind: DestinationRule
metadata:
name: xx-svc-b-vs
namespace: kube-ns-xx
spec:
host: svc_b.google.com # 治理髮往svc_b服務的流量
trafficPolicy:
loadBalancer:
simple: ROUND_ROBIN
connectionPool:
http:
http1MaxPendingRequests: 50000 # 等待佇列,超額熔斷
http2MaxRequests: 40000 # http請求數限制,超額熔斷
maxRetries: 2 # 同一個請求的超時次數上限限制,超過即熔斷。應用於當前所有的host。
tcp:
maxConnections: 40000 # 後端叢集總的TCP連線數,超額熔斷
雲基礎場景下的治理手段各種各樣,這邊講解了初級版的熔斷/限流方案,讓使用者有一個更優良的使體驗。
同時在系統大面積崩潰的時候,進行系統保護,不至於全面崩塌。
在後續的章節我們逐一瞭解下異常驅逐、異常自動重啟等高階用法。