天天看點

淺談千萬級系統重構系列

一、概述

我曾經做過多次千萬級系統重構,該系列文章來自于實際中的總結,絕對幹貨!包含灰階方案,唯一Id生成器,分庫分表,雙寫方案,輔助工具開發,以及微服務架構落地等等。同時我也會分享一些這其中遇到的一些問題,以及我們是如何解決的。

二、重構那些事

  • 單體架構
    淺談千萬級系統重構系列
    随着業務的發展,單體架構問題逐漸暴露
  1. 業務越來越複雜,單體架構擴充性不足,業務擴充帶來的代價越來越大
  2. 資料庫單點寫入瓶頸,mysql資料量太大查詢效率不高
  3. 改動一個點可能導緻其它地方出問題

    是以系統重構顯得尤為重要!

  • 微服務架構
    淺談千萬級系統重構系列
    資料庫層一般會分庫/分表,以訂單系統為例
    淺談千萬級系統重構系列

三、如何從單體架構過渡到微服務架構

淺談千萬級系統重構系列
  • 入口層采用按流量灰階,流量逐漸增大,降低風險
  • db層雙向同步,一旦有問題可以随時復原到老系統,并且一般情況下新系統會分庫分表
  • 資料對比工具,實時/手動對比資料是否一緻,提前發現潛在的問題

四、内容概況

大緻羅列了一下大概有如下内容點:

系列文章一期:

    1. 基于openresty開發輕量級,按流量控制的灰階子產品
    1. 淺談分布式唯一Id生成器最佳實踐
    1. 淺談mysql分庫分表那些事兒
    1. 淺談基于MQ&binlog同步資料雙寫方案
    1. 淺談資料雙寫之對比工具實作方案

以上完成了重構通用的一些技術方案

系列文章二期

微服務落地相關,課程章節待定

我将持續更新,大概一周更新一個主題,敬請期待!

五、總結

記得第一次做千萬訂單系統重構,我們老大說了這樣一句話:“重構這樣的事,一輩子幹一次就夠了”,确實,重構會遇到各種奇葩的問題,并且需要很多前期準備工作

比如:子產品拆分,權限回收,SQL改造等等。但是解決了這些問題,也會樂在其中。在這裡,感謝那些曾經一起奮鬥過的小夥伴!

六、歡迎關注我公衆号“淺談架構”

淺談千萬級系統重構系列

原創不易,轉載請注明出處,謝謝!