分布式架構搭建


首先講一下架構:

分層:根據職責進行分層;分區;

切割-分布式:基於職責對於分層進行縱切進行分布式部署,比如家用空調和商用空調部署要分開來部署,比如兄弟項目組一個APP項目,訂單,商品,維護都是分開來進行部署,做到業務之間松耦合;

集群,服務器負載均衡集群,數據集群,熱備;

水平擴展整完了就是再回到垂直了,緩存,比如海爾的項目,因為和數據庫IO很高,性能嚴重影響,引入了memcache,極大地提升了性能,數據庫瓶頸減少了;

再就是回到了代碼涉及級別,異步處理,避免同步導致的資源占用;自動化測試部署,減少人為錯誤;

還有就是安全;

下圖是架構層級圖:

接下來講述的是架構師需要考慮的點:

性能提升從前端到后端一次是:

  1. 瀏覽器:css放在上面,javascript放在后面;采用瀏覽器緩存;
  2. 傳輸層上面:采用CDN,反向代理服務器壓縮傳輸;
  3. 業務服務器:采用緩存,分布式緩存;
  4. 數據庫層面:采用集群;比如mysql的讀寫分離,主服務器負責寫,從服務器負責讀;

然后是可用性,顧名思義:服務可用,即使有的時候體驗差一點,但是要提供服務:

  1. 首先就是負載均衡,一個壞了,另外一個接上,
  2. 這里有個失效轉移以及熱備的概念,一旦發生意外,熱備機器要頂上去;
  3. 分布式(分級)部署,對於有些服務,比如評價,在雙11的高峰期就可以關閉,在部署上面按照級別進行拆分部署,做到特殊情況服務間影響較小;
  4. 程序設計級別就是冪等設計,比如提交支付,點擊一次和點擊兩次效果是一樣的,這種設計也叫作防呆設計,比如對於上傳文件,點擊一次上傳后,按鈕就要置灰,防止其二次提交;
  5. 再后端是數據庫,對數據進行熱備份;
  6. 最后面就是監控了,及時發現問題並解決問題;

第三,伸縮性,設計讓應用能夠水平擴展:

  1. 服務器水平擴展,使用nginx,apache等反向代理;要考慮session的處理,是session統一緩存保存,還是通過讓代理服務器保證同IP轉接到同一台機器上面;
  2. 緩存擴展,比如memcache的一致性算法,還是緩存數據的復制,比如Redis集群;
  3. 數據庫的擴展,mysql集群,分區技術;

第四,擴展性,伸縮是硬件的水平擴展,擴展性講的是業務水平擴展,要保證對項目影響很小,比如業務分布式部署,通過webservice技術做通信等;阿里有一個服務器注冊以及發現的礦漿叫Dubbo;

第五,安全性,

  1. 操作上,需要輸入驗證碼;
  2. 通道上,https;
  3. 通信上,加密,對稱,非對稱加密;
  4. 權限控制;
  5. 對於Ddos攻擊,這些需要從代理服務器,防火牆等角度進行設計考慮;


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM