SSDC 高可用系統在點評的實踐與經驗

2021-07-10 14:47:28 字數 1067 閱讀 5059

大眾點評

可用性理解

頻率要低

時間要快

幾點經驗

基本是演進過程

思考筆記

高可用是個結果。。

時間要快mttr:

5分鐘把問題解決

業務場景+流量規模=方案演進節奏

化簡為繁,化繁為簡

乙個系統,模組化,垂直服務化,平台服務化,化整為零。

一坨提公升研發效率&故障隔離

問題在於,分離之間會互相影響。

資料掛了,使用快取,怎麼辦?還有資料一致性問題。

資料跟服務走,不共享資料

訂單領域的服務化。拆成幾百個服務。瓶頸單點還是在資料庫

mysql,頻率是1-2w的速度。

水平拆分

拆庫拆表,拆成1000多個表,需要基礎元件基礎,否則運維成本很高。

常碰見幾個例子,伺服器網絡卡壞掉……;cache和cat伺服器,容易壞,它們都在乙個機櫃裡面。。。。;mq等中介軟體也會引起問題

系統繼續拆分

基礎通道做大

流量分塊

cdn/dns,

聯通,電信不穩

系統可限制流量,很容易解決問題,1s的任務分給3s做

無狀態,才容易擴容

降級能力,柔性可用

跟運營一起評估,評估流量,評估效能

如果不能回滾,否則就不要發布

灰度發布、灰度運營

跟監控速度有關,要熟悉系統以及下游的容量,影響時間、qps不同時間流量變化

機器所在的網路,資料庫結構

監控系統需要達到秒的級別

上策:系統,容錯、自動恢復;中策:運維,回滾、重啟、擴容、下伺服器、切災備;下冊:研發。

希望系統能夠自己解決問題

珍惜每次真實的高峰流量,建立高峰流量模型(為下次準備);壓測也沒有這個準;普通流量跟高峰流量模型往往不一樣

可用性不只是技術問題(考慮每個場景,從產品角度、業務角度思考)

可用性最大的敵人,單點、發布,發布如何控制?架構變化基本是去掉效能單點

一切現有架構都是錯的(有序組織是錯誤的)

保證系統的高可用

1 客戶端層 到 反向 層 的高可用,是通過反向 層的冗餘實現的,常見實踐是keepalived virtual ip自動故障轉移 2 反向 層 到 站點層 的高可用,是通過站點層的冗餘實現的,常見實踐是nginx與web server之間的存活性探測與自動故障轉移 3 站點層 到 服務層 的高可用...

高併發高可用的架構實踐 設計理念(一)

客戶端頁面快取 http header中包含expires cache of control,last modified 304,server不返回body,客戶端可以繼續用cache,減少流量 etag 反向 快取 應用端的快取 memcache 記憶體資料庫 buffer cache機制 資料庫...

有關系統架構的高可用原則

對於乙個高可用服務,很重要的乙個設計就是降級開關。在設計降級開關時,主要有以下思路 1.開關集中化管理 通過推送機制把開關推送到各個應用。2.可降級的多級服務 比如服務呼叫降級為唯讀本地快取,唯讀分布式快取,唯讀預設降級資料 如庫存狀態預設有貨 3.開關前置化 如架構是nginx tomcat,可以...