成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

我們一起聊聊接口高可用整體框架

開發(fā) 架構
接口高可用是系統(tǒng)架構設計中的重要環(huán)節(jié),通過限流、排隊、降級和熔斷四種核心技術,可以有效防止系統(tǒng)在高負載或故障情況下出現(xiàn)雪崩效應和鏈式效應。

接口高可用整體框架

接口高可用架構的本質是"丟車保帥"策略,在系統(tǒng)面臨壓力時,業(yè)務或用戶體驗會部分有損,但能保證核心功能正常運行。接口高可用主要應對兩種效應:雪崩效應(請求量超過系統(tǒng)處理能力導致系統(tǒng)性能螺旋快速下降)和鏈式效應(某個故障引起后續(xù)一連串的故障)。

接口高可用的四大核心技術包括:限流、排隊、降級和熔斷。其中限流和排隊主要用于防止雪崩效應,而降級和熔斷則主要用于防止鏈式效應。

一、限流

限流是在用戶請求全流程的各個環(huán)節(jié)進行的流量控制措施,可分為三個層次:1. 請求端限流:在發(fā)起請求時就進行限流,被限流的請求實際上并沒有發(fā)給后端服務器。常見手段包括限制請求次數(shù)(如按鈕變灰)和嵌入簡單業(yè)務邏輯(如生成隨機數(shù))。這種方式實現(xiàn)簡單,流量在本地就被控制,但只能防君子不防小人(腳本攻擊)。

2. 接入端限流:在接收到業(yè)務請求時進行限流,避免業(yè)務請求進入實際的業(yè)務處理流程。常見手段包括限制同一用戶請求頻率和隨機拋棄無狀態(tài)請求(如限流瀏覽請求,不限流下單請求)。這種方式實現(xiàn)較復雜,可以防刷,但限流閾值可能需要人工判斷。

3. 微服務限流:作為單個服務的自我保護措施,在處理能力不夠時丟棄新的請求。這種方式實現(xiàn)簡單,但處理能力難以精準配置。

限流算法主要有三種:

1. 時間窗口限流:   - 固定時間窗:統(tǒng)計固定時間周期內的請求量,超過閾值則限流。存在臨界點問題。   - 滑動時間窗:統(tǒng)計滑動時間周期內的請求量,超過閾值則限流。判斷比較準確,但實現(xiàn)稍微復雜。

2. 漏桶算法:   請求放入"桶"(如消息隊列),業(yè)務處理單元從桶里拿請求處理,桶滿則丟棄新的請求。技術本質是總量控制,桶大小是設計關鍵。優(yōu)點是可以應對瞬時高并發(fā)流量(如0點簽到,整點秒殺),缺點是桶大小動態(tài)調整比較困難,無法精確控制處理速度。      Java實現(xiàn)漏桶算法的關鍵是:業(yè)務線程和IO線程分離,通過隊列傳遞請求;合理配置BlockingQueue的長度。      漏桶算法的變種是寫緩沖(Buffer),如果漏桶容量無限(如用Kafka消息隊列),則可以用來做寫緩沖。技術本質是同步改異步,緩沖所有請求,慢慢處理。適用于高并發(fā)寫入請求,如熱門微博評論。

3. 令牌桶算法:   某個處理單元按照指定速率將令牌放入"桶",業(yè)務處理單元收到請求后需要獲取令牌,獲取不到就丟棄請求。技術本質是速率控制,令牌產生的速度是設計關鍵。優(yōu)點是可以動態(tài)調整處理速度,缺點是突發(fā)流量時可能丟棄很多請求,實現(xiàn)相對復雜。適用于控制訪問第三方服務的速度(防止把下游壓垮)和控制自己的處理速度(防止過載)。

二、排隊

排隊的基本原理是收到請求后并不同步處理,而是將請求放入隊列,系統(tǒng)根據(jù)能力異步處理。技術本質是請求緩存+同步改異步+請求端輪詢。適用于秒殺、搶購等場景。

排隊的架構設計關鍵在于:如何設計異步處理流程和如何保證用戶體驗(前端、客戶端交互)。

排隊的具體實現(xiàn)方案通常包括以下步驟:1. 用戶發(fā)起請求到排隊服務器2. 排隊服務器將請求放入隊列(如Kafka),并返回排隊號給用戶3. 用戶使用排隊號輪詢查詢處理狀態(tài)4. 業(yè)務服務器從隊列獲取請求并處理,處理完成后生成token并存儲(如Redis)5. 用戶查詢到token后,帶著token訪問實際的業(yè)務接口6. 業(yè)務接口驗證token有效性,并返回業(yè)務處理結果

以1號店雙十一秒殺排隊為例,其架構包括:排隊模塊(負責接收用戶搶購請求,將請求以先入先出方式保存)、調度模塊(負責排隊模塊到服務模塊的動態(tài)調度)和服務模塊(負責調用真正業(yè)務處理服務,并返回處理結果)。

三、降級

降級的基本原理是直接停用某個接口或URL,收到請求后直接返回錯誤(如HTTP 503)。主要應用于故障應急,通常將非核心業(yè)務降級,保住核心業(yè)務,例如降級日志服務、升級服務等。

降級架構實現(xiàn)的設計要點:1. 使用獨立系統(tǒng)操作降級,可以是獨立的降級系統(tǒng),也可以是嵌入到其它系統(tǒng)的降級功能2. 人工判斷,人工執(zhí)行,不要過度依賴自動化系統(tǒng)

四、熔斷

熔斷的基本原理是下游接口故障時,一定時期內不再調用該接口。主要應用于服務自我保護,防止故障鏈式效應。

熔斷架構實現(xiàn)的細節(jié):1. 可以通過配置中心或配置文件來配置熔斷策略2. 熔斷處理一般由框架或SDK提供,例如Dubbo+Hystrix3. 熔斷策略一般按照失敗次數(shù)、失敗比例、響應時長等來確定

總結

接口高可用是系統(tǒng)架構設計中的重要環(huán)節(jié),通過限流、排隊、降級和熔斷四種核心技術,可以有效防止系統(tǒng)在高負載或故障情況下出現(xiàn)雪崩效應和鏈式效應。這些技術各有特點和適用場景,架構師需要根據(jù)具體業(yè)務需求選擇合適的技術組合,實現(xiàn)系統(tǒng)的高可用性。

責任編輯:武曉燕 來源: 二進制跳動
相關推薦

2024-04-15 12:48:00

2022-06-26 09:40:55

Django框架服務

2024-04-09 07:53:04

高可用架構擴展性

2024-01-10 07:23:52

高可用策略實踐

2025-02-28 08:46:24

框架微服務架構

2024-11-27 08:47:12

2023-11-29 09:04:00

前端接口

2023-08-10 08:28:46

網絡編程通信

2023-08-04 08:20:56

DockerfileDocker工具

2023-06-30 08:18:51

敏捷開發(fā)模式

2022-05-24 08:21:16

數(shù)據(jù)安全API

2023-09-10 21:42:31

2024-02-20 21:34:16

循環(huán)GolangGo

2021-08-27 07:06:10

IOJava抽象

2021-10-14 11:08:17

大數(shù)據(jù)框架內存

2024-08-02 09:49:35

Spring流程Tomcat

2023-03-26 23:47:32

Go內存模型

2024-07-26 09:47:28

2022-10-08 00:00:05

SQL機制結構

2023-07-24 09:41:08

自動駕駛技術交通
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 成人精品一区二区三区中文字幕 | 在线视频一区二区 | 国产激情免费视频 | 99精品亚洲国产精品久久不卡 | 免费观看一级特黄欧美大片 | 天天影视综合 | 在线观看日韩av | 精品一区二区不卡 | 欧美精品一区在线 | 亚洲国产精品日韩av不卡在线 | 久久久青草婷婷精品综合日韩 | 欧美在线一区二区三区 | 国产一区二区三区在线视频 | 麻豆91av| 毛片综合 | 伊人伊人 | 国产精品日韩在线 | 欧美日韩综合一区 | 黄色片亚洲 | 亚洲一区在线日韩在线深爱 | 黄网址在线观看 | 黄色操视频 | 国产精品一区二区av | 午夜激情免费视频 | 伊人99 | 国产999精品久久久久久 | 中日韩毛片 | 日本小电影在线 | 久久久久国产一区二区三区 | 91久久电影 | 在线看日韩av | 亚洲精品久久久蜜桃 | 亚洲人成人一区二区在线观看 | 久久r精品 | av免费看片 | 老牛嫩草一区二区三区av | 亚洲国产成人久久综合一区,久久久国产99 | 免费成人高清在线视频 | 亚洲九九| 久久aⅴ乱码一区二区三区 91综合网 | 久久国产精品视频 |