微服務(wù)之負(fù)載均衡使用場景
在如見常見微服務(wù)系統(tǒng)中,負(fù)載均衡組件是一種將流量分配到多個服務(wù)的技術(shù),目的是提高系統(tǒng)的性能和可用性。負(fù)載均衡有兩種常見的模式:服務(wù)端模式和客戶端模式。服務(wù)端模式使用獨立的應(yīng)用程序(如 Nginx)來轉(zhuǎn)發(fā)請求,客戶端模式使用類庫(如 Ribbon、Spring Cloud LoadBalancer)來選擇后端服務(wù)。負(fù)載均衡還有不同的算法,如輪詢、隨機、最小連接數(shù)、區(qū)域等。本文將給大家介紹在微服務(wù)系統(tǒng)中負(fù)載均衡組件常見使用場景,內(nèi)容大綱如下:
- 故障處理
- 實例健康檢查
- 路由指定
- https 流量卸載
- 跨區(qū)域負(fù)載均衡
- 用戶粘性
故障處理
當(dāng)后端服務(wù)發(fā)生故障時,負(fù)載均衡組件能從故障服務(wù)中自動重新布線,取消對故障服務(wù)的流量分配,實現(xiàn)高可用性并最大限度地減少停機時間。示例圖如下,
圖片
實例健康檢查
負(fù)載均衡組件可以主動發(fā)起對后端服務(wù)運行狀況的定期監(jiān)控和驗證,確??头藗魅氲牧髁績H流向運行正常的服務(wù)。示例圖如下,
圖片
路由指定
負(fù)載均衡組件可以將針對特定平臺(移動、桌面等)的請求流量定向到單獨的后端服務(wù)以進行定制響應(yīng)。示例圖如下,
圖片
https 流量卸載
負(fù)載均衡組件可以卸載 https 流量,進行解密,將解密后的 http 流量發(fā)送到后端服務(wù),減輕后端服務(wù)壓力以及復(fù)雜度。示例圖如下,
圖片
跨區(qū)域負(fù)載均衡
當(dāng)系統(tǒng)對穩(wěn)定性要求較高,會需要用到多個可用區(qū)也就是異地容災(zāi)機制時,負(fù)載均衡組件可以在多個可用區(qū)之間均勻分配流量,達(dá)到增強容錯能力和可擴展性的效果。示例圖如下,
不過有一些需要說明的是在跨區(qū)域調(diào)用中,可能出現(xiàn) AZ 1 調(diào)用 AZ 2,造成調(diào)用延遲過高的問題,這個時候負(fù)載均衡組件也提供同區(qū)域調(diào)用的能力來減少這一現(xiàn)象。
圖片
用戶粘性
負(fù)載均衡組件可以將用戶請求與定后端服務(wù)做綁定達(dá)成“用戶粘性”,也就是說這個用戶的請求都會一直被同一個服務(wù)處理。用戶粘性的好處是可以確保用戶會話的連續(xù)性,示例圖如下,
圖片
本文翻譯自國外論壇 medium,原文地址:https://medium.com/@maheshsaini.sec/load-balancer-realistic-use-cases-distributed-system-design-ccf81343bad0