【成爲架構師2-2】僞分佈式與垂直拆分:快速解決單機性能問題的實踐方案

系列文章是博主對沈劍的《架構師訓練營》分享內容的個人筆記總結,原內容公衆號“成爲架構師”。

1 架構演進階段的新需求

原始的All in one 的單機系統無法滿足需求,將會主要暴露出以下兩個問題

  1. 訪問人多的時候,訪問能夠快一點 (性能問題)
  2. 部分出錯的時候不要全部掛掉 (耦合問題)

2 單機資源瓶頸產生時的環境

  1. 此時最大的成本,是時間成本
  2. 能用“錢”解決的系統問題,往往不是問題
  3. 老闆最不願意見到的,是解決一個系統問題,花很長時間(市場和投資人等不起)

解決思路:增加硬件資源(時間短),避免大規模代碼重構(時間長)

3 架構演進,僞分佈式,提升性能

三大分離結構(圖中僅兩種)

在這裏插入圖片描述

  1. 讀寫分離(會引發主從延時的問題
  2. 動靜分離,圖中表現了文件服務器(第三方的OSS也是)與業務邏輯的服務器分離;現代前端,像vue就是動靜分離的,對比古典的jsp,就無法實現動靜分離
  3. 前後臺分離,客戶端訪問與後臺管理訪問分離
設計思路

用最快的速度,增加硬件資源,提升系統性能,增加訪問速度

什麼問題沒有解決
  1. 耦合問題:依舊是一個掛了全部就掛了
  2. 主從延時新問題
  3. 讀寫分離只能提升讀性能,無法解決數據庫量的問題

4 垂直拆分,解耦

五八同城早期的頁面結構,就像是BBS一樣
在這裏插入圖片描述
有四種主要結構:首頁、貼子發佈頁、帖子(分類)列表、帖子詳情

四種垂直拆分:
  1. 業務垂直拆分(拆分的基礎和依據,還是沈劍的那句話“脫離業務的架構,都是耍流氓”)
  2. 代碼垂直拆分(子系統解耦)
  3. 數據庫垂直拆分(數據量降低,延時緩解)
  4. 研發團隊垂直拆分(專業化,效率提升)

在這裏插入圖片描述

設計思路

用最快的速度,增加硬件資源,解耦


僞分佈式之所以稱之爲“僞”是因爲它在整體系統層面依舊是一個單體,垂直拆分只是子系統之間實現了部分解耦,子系統之間有了一定的隔離性,但它也依舊是一個整體。

下一篇將介紹反向代理,實現真正的多機集羣,並討論nginx的負載均衡問題。

上一篇回顧:【成爲架構師2-1】容量設計:流量高低,對架構究竟有什麼影響
下一篇更精彩:【成爲架構師2-3】反向代理:接入層擴容,負載均衡

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章