1. 程式人生 > >架構設計---對於架構的一些思考

架構設計---對於架構的一些思考

  其實說到架構的話,我個人覺得沒有什麼可以說的,無論是以前常說的SOA,還是現在流行的微服務,其實無非就是CAP原理的一些運用而已(可伸縮、可擴充套件、容錯),無非就是犧牲可用性獲取一致性,或者一致性換取可用性,然後在這個過程中需要考慮容錯的問題的而已,具體的可以百度下Consistency(一致性)、 Availability(可用性)、Partition tolerance(分割槽容錯性)。我們經常用到的消失佇列,非同步、非阻塞。我覺得這個是需要具體分析具體處理的,一個系統的架構一開始設計的很完美是不存在的,沒有成長的系統是不合格的。很多的時候我們都是一步一步的優化系統,因為更多的是業務驅動技術的。

                                        

  然後就是垂直分割跟水平分割的問題,一個是垂直的鏈,一個是水平的擴充套件。透過上圖就可以很直觀的看出。很常見的就是如果針對資料庫,垂直的策略有快取的使用,讀寫分離等,或者叢集。水平分割的,分庫分表,多個應用例項,負載均衡等。

  所以說,架構這個東西,我最想說的就是一步一步的,沒有完美的架構,只有最適合目前情況的。比如普通的MVC就足以勝任的何必又去搬弄別人的高大上的框架,這些往往得不償失的。

想詳細瞭解架構的話,可以到這https://github.com/donnemartin/system-design-primer,覺得這裡講的非常的好。