針對系統拆分以及DB拆分,通過兩個階段來完成

發布時間:2021年11月13日 閱讀:470 次

針對系統拆分以及DB拆分,通過兩個階段來完成

針對系統拆分以及DB拆分,通過兩個階段來完成

針對系統拆分以及DB拆分,我們通過兩個階段來完成該項工作。

第一階段

首先在系統層面進行拆分,將原有的大系統拆分出多個業務邏輯獨立的子系統,而DB暫時不進行拆分,多套系統還繼續共用一個DB,只是根據業務邏輯劃分各個系統所依賴的表,不同業務邏輯系統之間不能互相訪問表,這樣新系統只訪問自己所歸屬的表,通過此種方案,可以保證原有系統業務不受影響,同時新拆分的業務系統研發工作也可以順利進行,此階段大概花費了我們幾個月的時間,最終順利完成系統層面的拆分。

第二階段

在完成系統層面拆分之后,我們緊接著實施DB層面的拆分,將各個子系統所依賴的表獨立拆分出來,分別放置到不同的RDS數據庫,實現物理的隔離,同時實現了數據庫主從分離。

初步服務化

本階段,我們采用了比較簡單易用的Hessian實現初期的RPC服務化。針對第三方公共服務,從原有系統中解耦出來,獨立拆分出服務化組件,并做獨立部署,供其余業務系統統一調用。而系統間調用也通過Hessian來實現RPC遠程調用。

SLB負載均衡

在V1.0架構期間,我們的Nginx都是單點部署,一旦一臺Nginx服務器出現故障,則會波及到大量業務系統,風險非常大

在V2.0架構期間,我們引入了SLB實現負載均衡,SLB配置了多臺Nginx,同時在業務系統層面也實現了負載均衡,避免了單點故障,達到高可用的目的。

爆發期—微服務架構V3.0

進入2016年以來,貝聊業務高速發展,用戶規模在短時間內增長數百萬,同時各個業務線逐漸鋪開,業務場景更加復雜,代碼規模膨脹得也非???,研發團隊迅速達到了幾十人規模,一個系統多人開發,研發人員層次不一,規范難以統一,同時業務邏輯耦合嚴重,每次上線都需要將整個大系統整體打包上線,風險非常大,并且新人入職之后學習成本非常高。因此我們引入了微服務架構,將業務邏輯拆分為獨立的微服務組件,每個微服務都圍繞著具體業務進行構建,由專人研發和維護,并由專人做性能優化和架構優化,各個微服務組件的研發與上線互不影響。

針對系統拆分以及DB拆分,通過兩個階段來完成

結合V2.0架構,在實施微服務架構時,基于多方面考慮,我們選擇了Dubbo作為分布式微服務框架。


Tag:針對 系統 拆分 DB拆分 通過 階段 完成
相關文章

發表評論:

性中国熟女毛耸耸性视频,办公室沙发口爆12P,在车上玩弄我的美艳搜子