前端也該瞭解的一些後端知識

前言

做爲一個有追求的前端,在學有餘力的同時,不該該把本身僅僅侷限於前端的世界中的。
然後端的知識是與前端工做最密切相關的一部份內容,多瞭解些後端的知識也是大有裨益的。前端

本文簡單敘述了三種構建大型架構的必備知識。也是我作前端這麼久以來,一直想知道的如何突破現有的性能瓶頸作到
高併發,高性能,高可靠。文中若有錯誤,歡迎指正。web

  • 優化數據庫redis

  • 負載均衡數據庫

  • 緩存技術後端

優化數據庫

對於使用數據庫的Web站點來講,數據庫性能關係整個web應用的性能,若是數據庫性能不佳,其餘的優化工做也是徒勞無功。因此優化數據庫性能,
對提升整個web應用的效率有着舉足輕重的做用。瀏覽器

一、 表的設計要規範,即要符合數據庫設計範式。
二、 適當創建索引,在頻繁做爲檢索條件,更新較少的字段上創建索引,以提升查詢速度。
三、 分表查詢,有水平分割、垂直分割。
四、 讀寫分離,讀(read)、寫(create、update、delete)。
五、 創建存儲過程。緩存

這裏特別想提到的是拆分表格這一點。最簡單的諸如,根據用戶ID的最後1位的數字將其拆分紅10個表,即 0,1,2,3,4,5,6,7,9。
這種平行的拆分方式,一方面,能夠解決單個數據庫併發鏈接數的限制,另一方面能夠控制單表的大小。頗有效的一種優化方式,特別在於解決高併發的需求。服務器

負載均衡

單臺Web服務器處理能力有限,單臺服務器承受的壓力達到極限時,須要有更多的服務器分擔工做,咱們須要想辦法將流量合理分配到更多的服務器上。
任何的負載均衡技術都要想辦法創建某種一對多的映射機制: 一個請求的入口映射到多個處理請求的節點,從而實現分而治之(Divide and Conquer)。
這種映射機制使得多個物理存在對外體現爲一個虛擬的總體,對服務的請求者屏蔽了內部的結構。
採用不一樣的機制創建映射關係,能夠造成不一樣的負載均衡技術,常見的包括:網絡

  • CDN架構

  • HTTP重定向

  • 基於DNS的輪詢解析

  • 反向代理服務器

詳細能夠參考 億級Web系統搭建——單機到分佈式集羣

緩存

隨着網絡的發展,數據愈來愈多,從而致使運算的壓力愈來愈大,爲了解決這一問題,就須要合理分級計算資源,充分利用已有資源。緩存的工做實際上計算資源的合理分配。

緩存 (Cache) 原意是指能夠進行高速數據交換的存儲器。當CPU處理數據時,先到 Cache 中尋找,若是數據因以前的操做已經讀取而被暫存其中,就不須要再從隨機存取存儲器中讀取數據了。
如今緩存的概念已被擴充,凡是位於速度相差較大的兩種介質之間,用於協調二者數據傳輸速度差別的結構,都可以稱之爲 Cache 。
在 web 世界,理論上每一層均可以被緩存。以PHP應用爲例:

  • 底層有CPU緩存,磁盤文件系統緩存

  • 數據庫層有 Table Cache,Query Cache

  • Apache和Ngix的緩存

  • 應用程序代碼級別的Smarty實現的文件緩存

  • 基於HTTP協議和瀏覽器自身實現的瀏覽器緩存

  • 基於NoSQL系統的緩存(redis, memcached)

結語

上述三種技術手段,是構建大型網絡應用的必備技術,展開來每點的水都很深。
而做爲一個前端兒,許多技術可能沒法在工程項目中親自去實踐,也只能從書,講座,博文中學習了。

最後推薦一本PHP的書籍《PHP核心技術與最佳實踐》,確實如同做者在其書中前言所述,沒有講述HTML,CSS,JS基礎,也沒有講PHP語法基礎,而是專一於web開發技術的最前沿,深刻淺出,探討高併發大流量的架構。 很是棒的一本進階書籍。

WilsonLiu's blog首發地址:http://blog.wilsonliu.cn

相關文章
相關標籤/搜索