(一)開始架構設計

一、如何設計

   1.提出設計

       要想設計好一個架構,首先要考慮全面且不能漏下重要需求。可以藉助於UML或者產品DEMO圖梳理思路,讓整個產品在自己頭腦內部形成一個清晰完整的形象,等到這時候你就可以着手設計方案了。

       設計方案最好設計3~5個,這個範圍的數量可以考慮周全而不用耗費過多的精力時間。方案之間的差別不能只是參數或配置的區別,如果只是修改參數就可以完成另一個方案,那麼根據這些參數已經可以選擇出一個較優方案,不會是同時入選。

       方案設計不要侷限於經常使用或熟悉的技術,這個要平時多積累,多接觸潮流技術並關注技術熱點,也許其中一個會是方案最好的選擇。

   2.設計評估

    在列出了每個方案的關鍵屬性點之後,在研發部門範圍內,集思廣益,探討項目的優劣,抉出最終方案。如果所有方案均不可行,那麼需要看看是遺漏了哪個關鍵技術點還是關鍵屬性,重新制定設計方案並進行新一輪的設計評估。

        

二、設計要點

1.設計數據庫的時候,要確認以下幾點:

          ①表格設計是否有ER圖展示

          ②採取分表需要解決下列問題:

                 1)join操作

                 2)count操作

                3)order by操作

         ③採取分庫需要解決下列問題:

                1)join操作

                2)事務問題

                3)成本問題   

         ④是否讀寫分離

         ⑤是否建立主備數據庫並支持主備倒換

         ⑥數據複製的實現過程是否有漏洞

         ⑦採用關係數據庫會有下列缺陷:

               1)無法存儲數據結構(可用Redis代替)

               2)schema擴展不便(可用MongDB代替)

              3)大數據IO高,列數據都會放入緩存(可用HBase代替)

              4)全文搜索弱(用ElasticSearcn)

2.設計服務器:是否需要採用集羣,建議在確定系統沒有優化空間後再考慮。

3.設計方案最好不要過於複雜:這樣實施的時候難度不會太大,也不容易出錯,建議方案分步驟、分階段、分系統設計執行。

4.不要過度設計,一個產品若沒有用戶積累,卻設想流量暴增100倍之後的情況,不僅增加了項目的複雜度,還消耗了大量的資源,在維護的時候將苦不堪言。      

        篇後語:老實說,我目前還未達到架構師的水準,這是在學習《從0開始學架構》後的第一篇總結性博客,之後陸續還會再系統性的分享幾篇,儘量保證覆蓋全面的架構知識。大部分是乾貨,希望大家能有所獲。而有不足的地方,也請留下寶貴的建議。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章