精品欧美一区二区三区在线观看 _久久久久国色av免费观看性色_国产精品久久在线观看_亚洲第一综合网站_91精品又粗又猛又爽_小泽玛利亚一区二区免费_91亚洲精品国偷拍自产在线观看 _久久精品视频在线播放_美女精品久久久_欧美日韩国产成人在线

聊聊高可用的 11 個關鍵技巧

開發 架構
單機版限流僅能保護自身節點,但無法保護應用依賴的各種服務,并且在進行節點擴容、縮容時也無法準確控制整個服務的請求限制。

大家好,我是Tom哥

大型互聯網架構設計,講究一個四件套組合拳玩法,高并發、高性能、高可用、高擴展。

如果能掌握這四個方面,應付大廠面試以及日常工作中的架構方案設計基本不是什么難題。

今天,Tom哥就帶大家學習下高可用都有哪些設計技巧?

一、系統拆分

有句古話 "牽一發而動全身"。

面對一個龐然大物,如果沒有一個合理的分工分層。任何一個小小失誤都會被無限放大,釀成巨大災難。

萬物相通,回到我們的軟件架構。

早前的系統都是單體系統,比如電商業務,會員、商品、訂單、物流、營銷等模塊都堆積在一個系統。每到節假日搞個大促活動,系統擴容時,一擴全擴,一掛全掛。只要一個接口出了問題,整個系統都不可用。

“雞蛋不能放在一個籃子里”,這種連帶風險換誰都承受不起。

因此,系統拆分 成了更多人的選擇。

慢慢的就有了我們現在看到的微服務架構,將一個復雜的業務域按DDD的思想拆分成若干子系統,每個子系統負責專屬的業務功能,做好垂直化建設,各個子系統之間做好邊界隔離,降低風險蔓延。

二、解耦

軟件開發有個重要原則“高內聚、低耦合”。

小到接口抽象、MVC 分層,大到 SOLID 原則、23種設計模式。核心都是降低不同模塊間的耦合度,避免一處錯誤改動影響到整個系統。

就以開閉原則為例,對擴展是開放的,對修改是關閉的。隨著業務功能迭代,如何做到每次改動不對原來的舊代碼產生影響。

Spring 框架給我們提供了一個很好的思路,里面有個重要設計 AOP ,全稱(Aspect Oriented Programming),面向切面編程。

核心就是采用動態代理技術,通過對字節碼進行增強,在方法調用的時候進行攔截,以便于在方法調用前后,增加我們需要的額外處理邏輯。

當然還有一個重要思路就是事件機制,通過發布訂閱模式,新增的需求,只需要訂閱對應的事件通知,針對性消費即可。不會對原來的代碼侵入性修改,是不是會好很多。

三、異步

同步指一個進程在執行請求的時候,若該請求需要一段時間才能返回信息,那么這個進程將會一直等待下去,直到收到返回信息才繼續執行下去。

效率會大大降低,聰明的人想到了 異步 方式。

如果是非實時響應的動作可以采用異步來完成,線程不需要一直等待,而是繼續執行后面的邏輯。

如:線程池(ThreadPoolExecutor)、消息隊列 等都是這個原理。

比如一個用戶在淘寶下了一筆購物訂單,關心的是訂單是否創建成功,能否進行后續的付款流程。

至于其他業務動作,如短信通知、郵件通知、生成訂單快照、創建超時任務記錄,這些非核心動作用戶并不是特別關心。

我們可以采用消息隊列的發布/訂閱 機制,數據庫插入訂單記錄后,發布一條消息到 MQ,然后就可以告知用戶下單成功。

其他事情,由不同的 Task 任務訂閱消息異步處理,彼此間互不干擾。

四、重試

重試主要是體現在遠程的RPC調用,受 網絡抖動、線程資源阻塞 等因素影響,請求無法及時響應。

為了提升用戶體驗,調用方可以通過 重試 方式再次發送請求,嘗試獲取結果。比過:瀏覽器的 F5 刷新機制就是類似道理。

接口重試是一把雙刃劍,雖然客戶端收到了響應超時結果,但是我們無法確定,服務端是否已經執行完成。如果盲目地重試,可能會帶來嚴重后果。比如:銀行轉賬。

重試通常跟冪等組合使用,如果一個接口支持了 冪等,那你就可以隨便重試。

關于的 冪等 的解決方案:

  • 插入前先執行查詢操作,看是否存在,再決定是否插入
  • 增加唯一索引
  • 建防重表
  • 引入狀態機,比如付款后,訂單狀態調整為已付款,SQL 更新記錄前 增加條件判斷
  • 增加分布式鎖;
  • 采用 Token 機制,服務端增加 token 校驗,只有第一次請求是合法的

五、補償

我們知道不是所有的請求都能收到成功響應。除了上面的 重試 機制外,我們還可以采用補償玩法,實現數據最終一致性。

業務補償根據處理的方向分為兩部分:

  • 正向。多個操作構成一個分布式事務,如果部分成功、部分失敗,我們會通過最大努力機制將失敗的任務推進到成功狀態
  • 逆向。同上道理,我們也可以采用反向操作,將部分成功任務恢復到初始狀態

注意:補償操作有個重要前提,業務能接受短時間內的數據不一致。

補償有很多的實現方式:

  • 本地建表方式,存儲相關數據,然后通過定時任務掃描提取,并借助反射機制觸發執行
  • 也可以采用簡單的消息中間件,構建業務消息體,由下游的的消費任務執行。如果失敗,可以借助MQ的重試機制,多次重試

六、備份

任何服務器都有宕機的可能性,一旦存儲了數據,帶上狀態,如果發生故障,數據丟失,后果是我們無法承受的。

所以,容災備份也就變成了互聯網的基本能力。

那如何備份,不同的框架有不用的玩法。我們以 Redis 為例:

Redis 借助 RDB 和 AOF 來實現兩臺服務器間的數據同步:

  • RDB,全量數據同步
  • AOF,增量數據同步,回放日志

一旦主節點掛了怎么辦?

這里引入哨兵機制。哨兵機制可以實現主從庫的自動切換,有效解決了故障轉移。整個過程分為三個階段:監控、選主、通知。

除了 Redis 中間件外,其他常見的 MySQL、Kafka 消息中間件、HBase 、ES 等 ,凡是涉及到數據存儲的介質,都有備份機制,一旦主節點掛了,會啟用備份節點,保證數據不會丟失。

七、多活策略

雖然有了上面的備份策略,那是不是就萬事大吉呢?

在一些極端情況,如:機房斷電、機房火災、地震、山洪等不可抗力因素,所有的服務器都可能出現故障,無法對外提供服務,導致整體業務癱瘓。

為了降低風險,保證服務的24小時可用性,我們會采用 多活策略。

常見的多活方案有,同城雙活、兩地三中心、三地五中心、異地雙活、異地多活

不同的方案技術要求、建設成本、運維成本也都不一樣。

多活的技術方案復雜,需要考慮的問題點也非常多,這里只是拋磚引玉就不過多展開

八、隔離

隔離屬于物理層面的分割,將若干的系統低耦合設計,獨立部署,從物理上隔開。

每個子系統有自己獨立的代碼庫,獨立開發,獨立發布。一旦出現故障,也不會相互干擾。當然如果不同子系統間有相互依賴,這種情況比較特殊,需要有默認值或者異常特殊處理,這屬于業務層面解決方案。

隔離屬于分布式技術的衍生產物,我們最常見的微服務解決方案。

將一個大型的復雜系統拆分成若干個微服務系統,這些微服務子系統通常由不同的團隊開發、維護,獨立部署,服務之間通過 RPC 遠程調用。

隔離使得系統間邊界更加清晰,故障可以更加隔離開來,問題的發現與解決也更加快速,系統的可用性也更高。

九、限流

高并發系統,如果遇到流量洪峰,超過了當前系統的承載能力。我們要怎么辦?

一種方案,照單全收,CPU、內存、Load負載飚的很高,最后處理不過來,所有請求都超時無法正常響應。

另一種解決方案,“舍得,有舍有得”,多余的流量我們直接丟棄。

限流定義:

限制到達系統的并發請求數量,保證系統能夠正常響應部分用戶請求,而對于超過限制的流量,則通過拒絕服務的方式保證整體系統的可用性。

根據作用范圍:限流分為單機版限流、分布式限流

  • 單機版限流

主要借助于本機內存來實現計數器,比如通過AtomicLong#incrementAndGet(),但是要注意之前不用的key定期做清理,釋放內存。

純內存實現,無需和其他節點統計匯總,性能最高。但是優點也是缺點,無法做到全局統一化的限流。

  • 分布式限流

單機版限流僅能保護自身節點,但無法保護應用依賴的各種服務,并且在進行節點擴容、縮容時也無法準確控制整個服務的請求限制。而分布式限流,以集群為維度,可以方便的控制這個集群的請求限制,從而保護下游依賴的各種服務資源。

限流支持多個維度:

  • 整個系統一定時間內(比如每分鐘)處理多少請求
  • 單個接口一定時間內處理多少流量
  • 單個IP、城市、渠道、設備id、用戶id等在一定時間內發送的請求數
  • 如果是開放平臺,則為每個appkey設置獨立的訪問速率規則

常見的限流算法:

  • 計數器限流
  • 滑動窗口限流
  • 漏桶限流
  • 令牌桶限流

十、熔斷

熔斷,其實是對調用鏈路中某個資源出現不穩定狀態時(如:調用超時或異常比例升高),對這個資源的調用進行限制,讓請求快速失敗,避免影響到其它的資源而導致級聯錯誤。

熔斷的主要方式是使用斷路器阻斷對故障服務器的調用

斷路器有三種狀態,關閉、打開、半打開。

狀態機:

  • 關閉(Closed)狀態:在這個狀態下,請求都會被轉發給后端服務。同時會記錄請求失敗的次數,當請求失敗次數在一段時間超過一定次數就會進入打開狀態。
  • 打開(Open)狀態:在這個狀態下,熔斷器會直接拒絕請求,返回錯誤,而不去調用后端服務。同時,會有一個定時器,時間到的時候會變成半打開狀態。目的是假設服務會在一段時間內恢復正常。
  • 半打開(Half Open)狀態:在這個狀態下,熔斷器會嘗試把部分請求轉發給后端服務,目的是為了探測后端服務是否恢復。如果請求失敗會進入打開狀態,成功情況下會進入關閉狀態,同時重置計數。

目前,市面流行的解決方案是阿里的開源框架 Sentinel,提供了Dashboard控制臺用于定義資源以及規則配置。

十一、降級

降級是系統保護的一種重要手段。

正如 “好鋼用在刀刃上”,為了使有限資源發揮最大價值,我們會臨時關閉一些非核心功能,減輕系統壓力,并將有限資源留給核心業務。

比如電商大促,業務在峰值時刻,系統抵擋不住全部的流量時,系統的負載、CPU 的使用率都超過了預警水位,可以對一些非核心的功能進行降級,降低系統壓力,比如把商品評價、成交記錄等功能臨時關掉。棄車保帥,保證 創建訂單、訂單支付 等核心功能的正常使用。

當然,不同業務、不同公司,處理方式也各不相同,需要結合實際場景,和業務方同學一塊討論,最后達成一個統一認可的降級方案。

總結下來:降級是通過暫時關閉某些非核心服務或者組件從而保護核心系統的可用性。

責任編輯:武曉燕 來源: 微觀技術
相關推薦

2024-07-25 08:39:48

2021-11-18 08:20:22

接口索引SQL

2022-06-21 07:51:06

Redis高可用哨兵進程

2024-07-03 08:49:32

2022-07-19 06:24:02

微服務高可用

2024-09-13 08:59:20

2024-04-26 08:28:08

高可用存儲架構

2024-04-26 00:28:14

異地多活架構

2021-11-10 18:52:42

SQL技巧優化

2023-05-18 15:32:02

HTML開發技巧

2020-10-20 09:20:28

Linux系統管理員技巧

2021-10-19 08:00:00

Windows 11Windows微軟

2022-02-25 08:06:48

架構

2025-05-26 03:15:00

接口高可用框架

2022-09-23 15:01:00

JavaScripChrome技巧

2022-07-20 08:21:00

Java代碼優化

2024-04-15 12:48:00

2024-10-21 19:34:01

2020-05-17 16:19:59

JavaScript代碼開發

2024-06-21 08:21:44

點贊
收藏

51CTO技術棧公眾號

亚洲精品91在线| 国产又大又黄又粗的视频| 国产18精品乱码免费看| 国产视频久久| 一本色道久久88综合亚洲精品ⅰ | 欧美一二三区精品| 人妻少妇精品久久| 超碰97在线免费观看| 国产尤物一区二区在线| 91国内在线视频| 一本一本久久a久久| 成人搞黄视频| 欧美日韩国产另类一区| 尤物av无码色av无码| 日本精品一区二区三区在线播放| 成人av片在线观看| 成人黄在线观看| 国产视频1区2区| 欧美色图首页| 精品国产欧美一区二区三区成人| 特级西西人体wwwww| 秋霞午夜一区二区三区视频| 欧美性受xxxx| 日韩激情免费视频| 国产美女一区视频| 1024成人网| 日韩av免费电影| 熟妇人妻中文av无码| 久久 天天综合| 国产成人一区二区三区电影| 国产一级在线播放| 亚洲激情久久| 最新69国产成人精品视频免费| jlzzjizz在线播放观看| 欧美午夜网站| 3atv一区二区三区| 杨幂毛片午夜性生毛片| 日本不卡网站| 五月天久久比比资源色| 黄色一级视频播放| 免费网站成人| 中文字幕亚洲电影| 亚洲看片网站| 日本视频在线免费观看| 中文字幕乱码亚洲精品一区| 欧美裸体网站| 欧美日韩伦理片| 26uuu亚洲综合色| 欧美人伦禁忌dvd放荡欲情| 日韩欧美精品免费| 日韩在线免费电影| 久久久久高清精品| 国严精品久久久久久亚洲影视 | 日韩 中文字幕| 999久久精品| 日韩美一区二区三区| 男女污污视频网站| 欧美成年网站| 日韩欧美高清dvd碟片| 精品国产午夜福利在线观看| 国产精品3区| 日韩一区二区三区电影| 人妻精品久久久久中文字幕69| 国产精品一区二区三区四区在线观看 | 国产精品成人av久久| 黄色精品网站| 久久久久久久久国产精品| 精品无码久久久久| 99精品国产福利在线观看免费| 97国产suv精品一区二区62| 日本系列第一页| 美女网站久久| 国产精品视频免费在线观看| 亚洲一卡二卡在线观看| 国产呦精品一区二区三区网站| 亚洲一区二区三区视频| 风流少妇一区二区三区91| 99视频一区二区三区| 日本视频精品一区| 好操啊在线观看免费视频| 夜夜操天天操亚洲| 无码人妻精品一区二区三区在线| 婷婷激情一区| 欧美一区二区三区四区高清| 91人妻一区二区| 九九精品在线| 日韩一区二区久久久| 免费无码毛片一区二区app| 亚洲国产婷婷| 国产精品国语对白| 精品久久国产视频| 久久亚洲精品小早川怜子| 亚洲精品国产一区| hd国产人妖ts另类视频| 欧美视频一区二区三区在线观看 | 欧美日韩成人黄色| 日本高清不卡免费| 亚洲国产欧美国产综合一区| 日韩美女免费观看| www.成人免费视频| 久久久噜噜噜久噜久久综合| 中文字幕欧美日韩一区二区三区 | 亚洲欧美一区二区三区久本道91| 欧美一区二区三区综合| 久久sese| 日韩精品综合一本久道在线视频| www.色天使| 欧美三级黄美女| 国产日韩精品视频| 青青草免费在线| 一区二区三区视频在线看| 成人在线免费播放视频| 91国内精品| 最新亚洲国产精品| 中文字幕亚洲精品一区| 国产美女久久久久| 亚洲激情图片| 亚洲涩涩在线| 精品88久久久久88久久久| 久久嫩草捆绑紧缚| 日本视频免费一区| 久久国产精品-国产精品| 日韩伦理av| 欧美一级久久久| 国产wwwwxxxx| 奇米888四色在线精品| 精品亚洲第一| 91黄页在线观看| 日韩欧美国产午夜精品| 国产免费美女视频| 免费成人美女在线观看.| 欧美国产一区二区在线| 阿v视频在线观看| 精品久久久久久无| 69av.com| 国产白丝精品91爽爽久久| 中文字幕在线亚洲三区| 国产一区二区色噜噜| 一本色道久久综合亚洲精品小说| 狠狠人妻久久久久久| 91色porny在线视频| 老太脱裤让老头玩ⅹxxxx| 亚洲高清在线一区| 欧美大片网站在线观看 | 国产精品一区二区免费不卡 | 日韩一级欧洲| 国产91亚洲精品一区二区三区| 国产精品久久久久久福利| 欧美三级日韩三级国产三级| 国产调教在线观看| 蜜臀av亚洲一区中文字幕| 亚洲电影网站| 国产精品xxx| 日韩中文字幕在线播放| 国产精品九九九九| 亚洲免费电影在线| 一本色道久久hezyo无码| 亚洲一级特黄| 久久国产精品-国产精品| 亚洲精品福利电影| 影音先锋欧美精品| 国产精品欧美亚洲| 一区二区三区日韩欧美| 动漫美女无遮挡免费| 99国产精品久久久久久久| 久久本道综合色狠狠五月| 自拍偷拍欧美视频| 丝袜亚洲另类欧美重口| 国产黄色av网站| 无码av免费一区二区三区试看| 疯狂揉花蒂控制高潮h| 久久久久在线| 久久99国产精品一区| 国产乱人伦精品一区| 国产成人黄色av| 麻豆tv入口在线看| 欧美精品一区二区三区很污很色的| 国产成人无码精品久在线观看 | 韩国美女久久| 日韩中文在线中文网在线观看| 国产又大又粗又长| 亚洲成人av中文| 欧美人妻一区二区三区| 国产美女视频一区| 免费观看精品视频| 天天射天天综合网| 韩国成人一区| 日本免费成人| 午夜精品一区二区三区av| 韩国免费在线视频| 日韩一区二区三区电影在线观看| 国产成人免费看| 亚洲激情在线播放| 精品无码国产污污污免费网站| 狠狠色伊人亚洲综合成人| 欧美亚洲精品一区二区| 99国产**精品****| 久久婷婷国产综合尤物精品| 欧美高清你懂的| 欧美一区二区三区…… | 国产精品亚洲自拍| av男人的天堂在线观看| 北条麻妃久久精品| 无码国精品一区二区免费蜜桃| 欧美三级电影网| 日韩av片在线播放| 亚洲激情图片一区| 麻豆视频免费在线播放| av电影在线观看一区| 一区二区三区四区毛片| 日韩精品一区第一页| 日本中文字幕在线视频观看| 国产精品久久久乱弄| 日韩免费毛片| 亚洲调教一区| 久久99久久99精品蜜柚传媒| 精品视频成人| 国产伦精品免费视频| 粉嫩一区二区三区| 2019av中文字幕| 色婷婷av在线| 久久视频在线播放| 欧美精品videos另类| 亚洲天堂久久av| 婷婷色在线视频| 亚洲成色777777在线观看影院| 999国产精品视频免费| 在线观看成人免费视频| 六月丁香婷婷综合| 天天av天天翘天天综合网| 免费一级片视频| 一区二区三区小说| 永久看片925tv| 一色桃子久久精品亚洲| 国产视频123区| 国产精品美女久久久久aⅴ| av男人的天堂av| 久久人人爽人人爽| 国精产品一区一区三区免费视频| 97精品超碰一区二区三区| 国产xxxxxxxxx| 成人动漫精品一区二区| 久久久久无码国产精品一区李宗瑞| 国产麻豆精品在线观看| 亚洲色图欧美自拍| 国产一区二区三区视频在线播放| 国产福利在线免费| 黄网站免费久久| 能看毛片的网站| 高清不卡一区二区| 91丝袜在线观看| 久久综合色鬼综合色| 最近中文字幕免费视频| 欧美激情中文字幕一区二区| 丰满的亚洲女人毛茸茸| 国产精品久久久久久久久免费桃花| 91资源在线播放| 成人欧美一区二区三区视频网页| www色aa色aawww| 亚洲乱码国产乱码精品精的特点 | 男人添女人下部高潮视频在线观看| 欧美大片免费观看| 欧美男男tv网站在线播放| 热久久这里只有精品| 992tv国产精品成人影院| 国产精品亚洲综合天堂夜夜| 高清一区二区| 国产日本一区二区三区| 美日韩中文字幕| 欧美 日韩 国产 在线观看| 狠狠色综合网| 日韩中文字幕组| 国产曰批免费观看久久久| 人妻av一区二区| 国产网站一区二区| 久艹在线观看视频| 五月婷婷欧美视频| 中文字幕91爱爱| 精品国产免费一区二区三区四区 | 久久久极品av| 国产亚洲成av人片在线观看 | 欧美激情手机在线视频 | 91精品办公室少妇高潮对白| 一区二区三区免费观看视频| 欧美成人一区二区三区在线观看| 四虎成人免费在线| 日韩亚洲在线观看| 欧美极品videos大乳护士| 国产精品最新在线观看| 66精品视频在线观看| 青青草原成人| 欧美日韩四区| 老司机午夜av| 成人av片在线观看| 久久人妻无码aⅴ毛片a片app| 午夜精品久久久久久久99水蜜桃 | 精品一区二区三区三区| 免费在线看a| 日本欧美一级片| 无码国模国产在线观看| 日韩精品久久一区二区三区| 国内揄拍国内精品久久| wwwwwxxxx日本| 久久久精品2019中文字幕之3| 69av视频在线| 欧美日韩一区精品| 手机福利在线| 久久久久久久一区二区| 亚洲伦理网站| 亚洲春色在线视频| 久久久久久自在自线| 国产伦精品一区三区精东| 亚洲欧美日韩一区二区三区在线观看| 亚洲自拍一区在线观看| 亚洲国产精彩中文乱码av在线播放| 欧美三级理伦电影| 国产精品久久久久99| 亚洲精品合集| 免费观看美女裸体网站| 国产电影一区二区三区| 国精产品视频一二二区| 色一情一伦一子一伦一区| 天天干,夜夜操| 久久久久女教师免费一区| 警花av一区二区三区| 一区不卡字幕| 麻豆freexxxx性91精品| 一级片视频免费看| 欧美性黄网官网| 视频福利在线| 欧美一级免费看| 美女扒开腿让男人桶爽久久动漫| 成年在线观看视频| 国产麻豆精品在线| 青青草手机在线视频| 91精品国产乱| av在线app| 亚洲永久在线观看| 欧美啪啪一区| 999久久欧美人妻一区二区| 秋霞欧美在线观看| 久久激情视频久久| 欧美视频免费看| 欧美福利精品| 性感少妇一区| www.自拍偷拍| 欧美性少妇18aaaa视频| 天堂av电影在线观看| 68精品国产免费久久久久久婷婷| 91麻豆精品激情在线观看最新| 成年丰满熟妇午夜免费视频| 国产一区二区三区黄视频| 一级性生活免费视频| 7777精品伊人久久久大香线蕉的| 大乳在线免费观看| 国产精品久久久久99| 99久久精品网| 国产91在线免费观看| 亚洲午夜久久久久久久久电影院| 亚洲精品18p| 538国产精品视频一区二区| 国产99精品一区| 亚洲色图久久久| 亚洲欧美日韩中文字幕一区二区三区| av中文字幕免费| 久久久久中文字幕2018| 丝袜连裤袜欧美激情日韩| 国产精品无码av无码| 最新中文字幕一区二区三区| av中文字幕第一页| 91成品人片a无限观看| 国产最新精品| 亚洲自拍第三页| 精品成人久久av| 丁香在线视频| av观看久久| 久久婷婷久久| 精品无码一区二区三区蜜臀| 精品国产乱码久久久久久夜甘婷婷| 筱崎爱全乳无删减在线观看| 亚洲成人一区二区三区| 国产98色在线|日韩| 99精品人妻国产毛片| 久久在线视频在线| 香蕉国产成人午夜av影院| 国产三级国产精品国产专区50| 欧美老少做受xxxx高潮| 97久久人人超碰caoprom| 久久久久久久久四区三区| 久久国产综合精品| 久久久久久国产精品免费播放| 日韩精品小视频| 在线视频成人| 六月婷婷在线视频| 亚洲国产精品黑人久久久| 亚洲国产福利视频| 国产精品日韩欧美| 精品91在线| 国产又色又爽又高潮免费| 亚洲国产日韩精品在线|