傳統項目:
存在問題:
1:模塊之間耦合度太高,其中一個功能升級,其他的模塊都得一起升級部署。
2:開發困難,各個團隊開發最后都要整合在一起.
3:系統擴展性差
4:不能靈活進行分布式部署
解決方案:
把模塊才分成獨立的工程,單節點運行,如果某一個節點壓力大了可以單獨對這個節點進行增加配置,其他節點不受影響。缺點就是系統之間交互
需要額外的工作量來進行接口的開發。把系統拆分成多個工程,需要完成系統的工程需要多個工程協作完成,這種形式就叫做分布式。
分布式:
把系統拆分成多個子系統.優點:
1:把模塊拆分,使用接口通信,降低模塊之間的耦合度.
2:把項目拆分成若干個子項目,不同的團隊負責不同的子項目.
3:增加功能時只需要再增加一個子項目,調用其他系統的接口就可以。
4:可以靈活的進行分布式部署.
5:提高代碼的復用性,比如service層,如果不采用分布式rest服務方式架構就會在手機wap商城,微信商城,pc,android,ios每個端都要寫一個service層邏輯,開發量大,難以維護一起升級,這時候就可以采用分布式rest服務方式,公用一個service層。
缺點:系統之間的交互要使用遠程通信,接口開發增大工作量,但是利大於弊,哈哈。
(以前老的架構,不同的項目模塊單獨開發部署,沒有交集,只公用數據庫)
注意:在拆分項目的時候一定要考慮好,做到獨立的拆分,比如商城系統,前台protol系統里面訂單可以拆分為一個系統,首頁可以拆分為一個系統,這樣就可以
分功能進行攔截/order的請求,如果沒登錄就去單點登錄系統進行登錄處理,這樣的好處就是攔截的更精確。