《大型網站技術架構:核心原理與架構分析》閱讀心得記錄(以下個人理解,如果錯誤還望指正)
1.機器的演化
初始架構等級1:一個應用服務器中包含應用程序,文件,數據庫都包含
等級2:分成三個服務器應用程序服務器,文件服務器,數據庫服務器。
等級3:建立緩存,將最常用的數據進行緩存,此處分成2.5和3兩個等級,2.5是依靠自己的大內存,3是依靠遠程分布式緩存服務器
等級4:應用服務器的集群,增加一台負載均衡的服務器用來進行調度。
等級5:當數據庫負載過高時,使用主從分離的技術,建立一個主庫,一個從庫,兩種直接數據同步,並且讀取與寫入進行分離。
等級6:加快各地區的網絡訪問,使用反向代理和CDN進行緩存。6.5,將數據庫進行業務分庫,形成分布式數據庫系統,必要的大數據使用NoSQL等技術
等級7:進行數據的消息隊列,數據提交的排隊服務(應付諸如秒殺,搶購等業務),特殊情況,特殊對待
當以上架構都進行集群的時候,服務器已經上百台。
當然沒有網站生來就大的,都是一步一步演化出來的。一開始不比考慮那麼多,先做出來,再一步一步進行架構。
2.網站的演化
不要為了模式而去模式,業務成就模式。不同的業務產生出來的模式都是不一樣的。(這應該就是進化學,模式適應了業務,得到了生存)
分層手段:應用層,服務層,數據層等等橫行劃分
分割手段:比如分層是蛋糕橫著切,分割就是縱向切割。將功能業務等分割達到可以分開部署的程度
分布式:(意思就是更多的計算機可以完成相同的功能,比如兩台電腦部署同一個網站,另一台電腦放數據庫提供這兩台電腦操作)功能和職能各種分開,達到各盡其職,如同一家大型的工廠,各個流水線分工合作。
集群:集群也是很多服務器集合,可以自動增加多台服務器擴展,當一台服務器宕機或者壓力過大時候,不影響其他服務器。當業務增長,可以增刪服務器。分布式是一種分工,而集群就是將他們集中,變成一個群體,並對外提供服務。
災備:數據的災備,建立數據中心,災備數據
自動化:服務於網站的自動化工具。
安全:大網站完備的網站安全團隊
性能:並發的處理,吞吐量,優質的代碼,前後端的優化,文件的壓縮,減少冗余,服務器配置等性能。
一切的一切並沒有銀彈,一個技術不行就再請一個過來,但是有沒有用確實另外一回事。整本書提倡最多的就是,一個人不行,就兩個人來,然後做到合理的調度,做成一個高可用的網站。