精品欧美一区二区三区在线观看 _久久久久国色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技術棧公眾號

玖玖爱免费视频| 亚洲免费999| 国产中文字幕在线看| 日本色综合中文字幕| 久久精品国产一区| 六十路息与子猛烈交尾| 福利精品在线| 午夜伦欧美伦电影理论片| 区一区二区三区中文字幕| 国产青青草视频| 亚洲综合欧美| 久久999免费视频| 阿v天堂2014| 成人h动漫精品一区二区器材| 91国偷自产一区二区开放时间| 国产树林野战在线播放| 黄视频在线播放| 成人小视频免费观看| 国产精品专区一| 亚洲午夜18毛片在线看| 你懂的亚洲视频| 在线色欧美三级视频| 黄色激情在线观看| 婷婷丁香久久| 在线视频国内自拍亚洲视频| 欧美图片激情小说| 国产在线一区二区视频| 久久丝袜美腿综合| 痴汉一区二区三区| 国产免费的av| 蜜臀久久99精品久久久久宅男| 97色在线视频| 国产网址在线观看| 欧美人成网站| 九九热精品视频| 最新av电影网站| 成人精品影院| 一本色道久久88综合亚洲精品ⅰ | 久久精品视频va| 懂色av蜜桃av| 国产在线观看91一区二区三区| 欧美精品一区二区不卡| 日本美女久久久| 不卡一区视频| 717成人午夜免费福利电影| 无码少妇一区二区三区芒果| 亚洲精品动漫| 日韩欧美在线国产| 午夜精品久久久久久久无码| av资源网在线播放| 午夜精品久久一牛影视| 国产素人在线观看| 国产资源在线观看入口av| 午夜国产不卡在线观看视频| 日本阿v视频在线观看| a'aaa级片在线观看| 亚洲国产裸拍裸体视频在线观看乱了 | 亚洲精品久久久蜜桃动漫 | 欧美午夜不卡| 久久久久久久久久久久久久久久久久av | 成人av综合网| 亚洲精品在线91| 男人天堂av电影| 国产欧美日韩视频在线| 日韩中文字幕网址| 国产女人18水真多毛片18精品| 综合五月婷婷| 欧美精品18videosex性欧美| 国产尤物在线视频| 国产一区二区三区的电影| 2024亚洲男人天堂| 在线观看你懂的网站| 理论片日本一区| 不卡一区二区三区四区五区| 手机看片1024日韩| 国产亲近乱来精品视频| 国产高清精品软男同| 欧美一卡二卡| 91高清视频在线| theporn国产精品| 都市激情久久| 亚洲精品一区二区久| 中文字幕第69页| 欧美视频网站| 国产精品都在这里| 精品人妻一区二区三区麻豆91| 99久久综合色| 五月天综合网| 七七成人影院| 欧美午夜宅男影院| 色欲欲www成人网站| 外国成人在线视频| 久久久国产成人精品| 国产乡下妇女做爰| 蜜臀av国产精品久久久久| av电影成人| 国产中文字幕在线| 亚洲一区二区精品久久av| 成人精品视频一区二区| 婷婷综合国产| 这里只有精品在线观看| 久久久久久久久97| 男女性色大片免费观看一区二区| 99c视频在线| av在线免费播放网站| 香蕉乱码成人久久天堂爱免费| 亚洲国产成人va在线观看麻豆| 国产精品调教视频| 日韩在线不卡视频| 国产伦精品一区二区三区视频我| 国产激情91久久精品导航| 日本一区二区三区在线视频| 第四色日韩影片| 欧美精品日韩一区| 久久久久久久久久久国产精品| 午夜电影亚洲| 成人有码视频在线播放| аⅴ资源新版在线天堂| 五月综合激情日本mⅴ| 永久免费黄色片| 日韩www.| 国产成人精品一区二区三区| 日本高清视频www| 亚洲激情第一区| 玖玖爱视频在线| 日韩av在线播放网址| 日产精品久久久一区二区福利 | 国产一区二区激情| 天天爽夜夜爽夜夜爽精品| 高清免费成人av| 日本丰满大乳奶| 99久久久成人国产精品| 丝袜一区二区三区| 亚洲视频在线观看免费视频| 久久精品在线免费观看| 国产成人a亚洲精v品无码| 久久亚洲道色| 国内自拍欧美激情| 欧美熟女一区二区| 亚洲国产乱码最新视频| 日本国产在线视频| 极品少妇一区二区三区| 99在线热播| heyzo高清国产精品| 亚洲成人久久一区| 中国一级免费毛片| 久久亚洲综合av| 成人三级视频在线播放| 天堂成人娱乐在线视频免费播放网站| 亚州精品天堂中文字幕| 午夜视频免费在线| 欧美性生交大片免费| 精品人妻少妇嫩草av无码| 久久精品国产清高在天天线| 日本不卡一区| 九九久久国产| 久久综合色影院| 丰满肥臀噗嗤啊x99av| 亚洲福中文字幕伊人影院| 中国极品少妇xxxx| 亚洲欧美日韩精品一区二区| 欧美日韩在线精品| 成人福利一区二区| 久久久国产精品视频| 精品人妻无码一区二区| 亚洲五码中文字幕| 玖玖爱在线观看| 麻豆精品国产传媒mv男同| 日本免费在线视频观看| 伊人久久噜噜噜躁狠狠躁| 97在线精品国自产拍中文| 日色在线视频| 欧美精品一级二级三级| 青青草免费av| 91在线观看视频| 久久久久久久久久久久91| 98精品视频| 国产精品初高中精品久久| 中文字幕乱码中文乱码51精品| 亚洲人成自拍网站| 国产精品一级二级| 精品久久久久久久中文字幕| 丁香激情五月少妇| 丁香激情综合五月| 免费激情视频在线观看| 91成人影院| 久久伊人一区| 国产精品白丝久久av网站| 韩国精品美女www爽爽爽视频| 毛片在线免费| 日韩午夜电影av| 欧美亚洲另类小说| 一区二区三区中文字幕在线观看| 成年人在线观看av| 国产美女精品人人做人人爽| 欧美 国产 综合| 欧美1区视频| 日韩免费中文专区| 白嫩白嫩国产精品| 国产美女被下药99| 在线观看特色大片免费视频| 久久躁日日躁aaaaxxxx| 精品亚洲综合| 亚洲第一区中文字幕| 伊人影院中文字幕| 欧美日韩精品二区| 中文字幕电影av| 亚洲国产成人自拍| 一级特级黄色片| 国产a区久久久| 一本岛在线视频| 亚洲综合另类| 黄色www网站| 欧美日韩三级| 在线视频一二三区| 日韩欧美一区免费| 青青影院一区二区三区四区| 日本国产精品| 成人欧美视频在线| 国产一区二区三区黄网站| 国产精品在线看| 日韩中文视频| 日韩美女在线播放| 竹内纱里奈兽皇系列在线观看 | 一区二区精品国产| 欧美一区二区三区高清视频| 欧美成人免费在线| 欧美一级全黄| 国产伦精品一区二区三区在线| 免费一区二区三区在线视频| 国产色综合天天综合网 | 欧美视频一区二区三区| 亚洲欧美一区二区三区在线观看| 午夜电影网亚洲视频| 久久精品一级片| 一区二区三区中文在线| 成人免费毛片xxx| 国产精品传媒视频| 污污视频网站在线免费观看| 国产精品三级av在线播放| 日本高清黄色片| 国产精品久久久久久久岛一牛影视 | 北条麻妃av高潮尖叫在线观看| 国产精品久久国产愉拍| 奇米精品一区二区三区| 国产精品资源| 久草资源站在线观看| 亚洲欧美日韩综合国产aⅴ| 日本网站免费在线观看| 国产精品一级| 日本999视频| 蜜桃视频一区二区三区在线观看| 婷婷丁香激情网| 久久精品国产一区二区| 天天操天天干天天做| 国产毛片精品视频| 韩国av中国字幕| 不卡在线视频中文字幕| 中日韩精品一区二区三区| 国产午夜精品在线观看| 999福利视频| 亚洲蜜臀av乱码久久精品蜜桃| 久草网站在线观看| 午夜久久久久久久久| 天天干天天操天天爱| 欧美午夜电影网| jlzzjlzzjlzz亚洲人| 欧美刺激午夜性久久久久久久| 少妇无码一区二区三区| 亚洲人成网站色ww在线| 免费观看久久久久| 欧美精品久久久久久久| 国产免费不卡| 成人免费激情视频| 精品人人人人| 日本高清视频一区二区三区| 99久久亚洲精品蜜臀| 久久精品xxx| 日韩和欧美一区二区三区| 国产免费中文字幕| 9l国产精品久久久久麻豆| 能免费看av的网站| 亚洲黄色在线视频| 波多野结衣视频在线看| 日韩一区二区在线看| 日韩电影免费| 久久伊人精品一区二区三区| 黄色在线免费观看网站| 91精品久久久久久久久中文字幕 | 精品不卡在线视频| 国产二区视频在线观看| 欧美激情在线有限公司| 日韩经典一区| 国产综合18久久久久久| 欧美gay男男猛男无套| 免费在线a视频| 国产综合色精品一区二区三区| 特级西西人体4444xxxx| 亚洲视频香蕉人妖| 手机看片久久久| 精品国产在天天线2019| aaa在线观看| 91高清视频免费| 一区二区三区四区视频免费观看| 日韩欧美亚洲v片| 亚洲美女黄网| 久久综合桃花网| 中文字幕av资源一区| 黄网在线观看视频| 日韩精品专区在线影院观看| aⅴ在线视频男人的天堂| 日本成人免费在线| 91蝌蚪精品视频| 精品91一区二区三区| 热久久一区二区| 在线免费观看麻豆| 亚洲不卡av一区二区三区| 国产乱淫a∨片免费观看| 亚洲一级黄色av| xx欧美视频| 九色91国产| 极品av少妇一区二区| 黄页网站在线看| 亚洲日本在线天堂| 亚洲自拍偷拍另类| 中文字幕精品av| 日韩免费福利视频| 欧美日韩一区二区视频在线| 一本色道久久综合一区| www男人天堂| 亚洲国产成人av网| 色一情一乱一乱一区91av| 欧美精品免费在线观看| 国产精品视频首页| 亚洲免费视频播放| 国产一区在线观看视频| 糖心vlog免费在线观看| 51精品视频一区二区三区| 蜜芽在线免费观看| 91精品视频免费| 亚洲一区欧美| 久久久久亚洲av无码麻豆| 亚洲欧美一区二区三区国产精品| av网站在线免费看| 久操成人在线视频| 99国产精品久久一区二区三区| 免费特级黄色片| 99国产精品视频免费观看| 日韩免费在线视频观看| 日韩精品电影网| 中文字幕在线直播| 午夜欧美性电影| 久久精品国产亚洲aⅴ| 欧美成人免费看| 亚洲电影av在线| 中文在线免费视频| 亚洲精品乱码久久久久久蜜桃91| 久久成人免费网| 欧美卡一卡二卡三| 亚洲激情 国产| 三级成人黄色影院| 亚欧精品在线| 国产精品影视网| 日本最新中文字幕| 亚洲欧洲国产伦综合| 成人国产精选| 老司机午夜网站| 91在线你懂得| 在线观看毛片网站| 欧美日韩福利视频| 少妇久久久久| 免费一区二区三区在线观看 | 亚洲影院在线播放| 最近2019中文字幕mv免费看 | 成人精品小蝌蚪| 国内自拍视频在线播放| 日韩在线观看精品| caoporn成人| 亚洲成人av免费看| 亚洲最新视频在线播放| 嫩草研究院在线| 亚洲xxxx做受欧美| 日日摸夜夜添夜夜添精品视频| 欧美精品久久久久久久久46p| 亚洲精品一线二线三线| 欧美国产日韩电影| 阿v天堂2018| 亚洲欧洲av色图| 亚洲av片一区二区三区| 91久久国产婷婷一区二区| 国产深夜精品| 小早川怜子一区二区的演员表| 亚洲精品av在线| 伊人亚洲精品| 国产精品-区区久久久狼| 亚洲伦在线观看| 国产精品久久久久一区二区国产| 97超碰资源| 九一九一国产精品| 久久久蜜桃一区二区|