一、概述
我曾經做過多次千萬級系統重構,該系列文章來自于實際中的總結,絕對幹貨!包含灰階方案,唯一Id生成器,分庫分表,雙寫方案,輔助工具開發,以及微服務架構落地等等。同時我也會分享一些這其中遇到的一些問題,以及我們是如何解決的。
二、重構那些事
- 單體架構 随着業務的發展,單體架構問題逐漸暴露
淺談千萬級系統重構系列
- 業務越來越複雜,單體架構擴充性不足,業務擴充帶來的代價越來越大
- 資料庫單點寫入瓶頸,mysql資料量太大查詢效率不高
-
改動一個點可能導緻其它地方出問題
是以系統重構顯得尤為重要!
- 微服務架構 資料庫層一般會分庫/分表,以訂單系統為例
淺談千萬級系統重構系列 淺談千萬級系統重構系列
三、如何從單體架構過渡到微服務架構
- 入口層采用按流量灰階,流量逐漸增大,降低風險
- db層雙向同步,一旦有問題可以随時復原到老系統,并且一般情況下新系統會分庫分表
- 資料對比工具,實時/手動對比資料是否一緻,提前發現潛在的問題
四、内容概況
大緻羅列了一下大概有如下内容點:
系列文章一期:
-
- 基于openresty開發輕量級,按流量控制的灰階子產品
-
- 淺談分布式唯一Id生成器最佳實踐
-
- 淺談mysql分庫分表那些事兒
-
- 淺談基于MQ&binlog同步資料雙寫方案
-
- 淺談資料雙寫之對比工具實作方案
以上完成了重構通用的一些技術方案
系列文章二期
微服務落地相關,課程章節待定
我将持續更新,大概一周更新一個主題,敬請期待!
五、總結
記得第一次做千萬訂單系統重構,我們老大說了這樣一句話:“重構這樣的事,一輩子幹一次就夠了”,确實,重構會遇到各種奇葩的問題,并且需要很多前期準備工作
比如:子產品拆分,權限回收,SQL改造等等。但是解決了這些問題,也會樂在其中。在這裡,感謝那些曾經一起奮鬥過的小夥伴!
六、歡迎關注我公衆号“淺談架構”
原創不易,轉載請注明出處,謝謝!