大型WEB架構設計

當前用戶量、數據量、訪問量都在不斷的增加,每一個快速發展的網站都將面臨執行效率、高訪問、高併發和高度複雜的數據處理等問題,咱們這一階段的學習就是專門爲解決網站的大訪問量、大存儲、大數據量、大流量、大負載、瞬間爆發、查詢維度多、動靜分離、訪問速度滯緩等問題,而且所有經過Linux服務器設計完成。mysql

1、網站運營總結

  • 1.大訪問量
  • 2.大存儲量
  • 3.訪問速度
  • 4.服務器監控

一、大訪問量

負載均衡 把衆多的訪問量分擔到其餘的服務器上,讓每一個服務器的壓力減小web

1) Cisco 以太網通道 (網絡層面的負載均衡設備和技術)
2) windows NLB技術 (服務器領域)
3) Linux LVS技術 (服務器領域)
4) F5等負載均衡器 (網絡層面)算法

冗餘技術 數據到達服務器,以防止出現宕機,備份服務器開始運行,防止單 點故障,作一個備份。
集羣技術:不是多臺服務器加在一塊兒造成的集羣圈。而是在集羣圈中,只有一臺服務器在爲客戶服務即處於激活狀態,其餘的都處於休眠狀態,當出現故障時,休眠狀態的自動就會被激活。輪循。單點故障,有一個備份,就是集羣sql

1)Cisco HSRP 熱備份路由 ( hot standby route protel)
2)Windows集羣技術
3)Linux HA 集羣技術
4)IBM AIX 集羣數據庫

clipboard.png

典型LVS結構
通常來講,LVS集羣採用三層結構,負載調度器服務器池共享存儲主要組成。apache

clipboard.png

合格的構架師來運營一家公司的網站必須考慮的三個問題:
①網絡構架
②服務器構架
③應用程序開發(代碼)windows

二、網站大數據存儲

一、主流數據庫

目前有四種主流的數據庫:
1.Mysql
2.Oracle
3.DB2(IBM)
4.Nosql (非關係型數據庫)緩存

淘寶數據存儲分爲三個階段:
一、主打mysql數據庫
二、IBM AIX小型機 + Oracle數據庫【成本】
三、Mysql主羣+集羣+分區技術(承擔光棍節巨大訪問量)服務器

網絡界最核心最重要的爲數據的積累網絡

這裏咱們先明確三個概念:
負載均衡:服務器都是激活的,而且是輪循的。
冗餘技術:一個激活,其它的備份處於休眠狀態。
Mysql主從:依賴於Binary Log日誌(記載CRUD,做用是恢復數據),主服務器的全部增刪改的操做同時會備份複製一份給從服務器,讓服務器同時執行,達到和主服務器的數據的同步和完整,它的重點是主服務器和從服務器均可以同時活動,即操做Mysql數據庫時,增刪改走都是主服務器,而查詢走的是從服務器。因此,主從爲負載的技術。

在這裏咱們的重點爲負載均衡技術,在假設咱們的服務器不會出現單點故障前提下冗餘技術不會過多的考慮。

二、MySQL相關操做

Mysql 分庫分表
1.垂直分表(字段不要太多,把一張大表豎切爲許多小表)
2.水平分表(把一張大表橫切爲若干小表)

Mysql 分區技術
分區技術將一個表拆成多個表,比較經常使用的方式是將表中的記錄按照某種Hash算法進行拆分,簡單的拆分方法如取模方式。
在必定的層面表名不變,在真正的磁盤存儲時存儲在不一樣的分區

Mysql 集羣
單點故障時,冗餘備份

3.網站加速技術

1.Squid 代理緩存技術(Squid:烏魚)
2.頁面靜態化緩存
3.Memcache,Redis
4.Sphinx 搜索加速(獅身人面像,謎同樣的人)

Squid反向緩存-動靜分離
Squid是一款用來作代理服務器的軟件。做用是動靜分離,將數據保存在緩存池中Squid cache,可以代理服務器執行。代理服務器就如同買火車票,去火車票代理售票點,買票,而不是去火車站,這樣就減小了火車站的壓力,提升了速度。

動態頁面靜態化
Memcache 是一個高性能的分佈式的內存對象緩存系統,目前全世界很多人使用這個緩存項目來構建本身大負載的網站,來分擔數據庫的壓力,經過在內存裏維護一個統一的巨大的hash表,它可以用來存儲各類格式的數據,包括圖像、視頻、文件以及數據庫檢索的結果等。簡單的說就是將數據調用到內存中,而後從內存中讀取,從而大大提升讀取速度。(注: 摘自百度全科)

Sphinx全文索引
Sphinx 是一個基於SQL的全文檢索引擎,能夠結合MySQL,PostgreSQL做全文搜索,它能夠提供比數據庫自己更專業的搜索功能,使得應用程序更容易實現專業化的全文檢索。

4.網站服務監控

網站服務、流量監控
一、服務監控
1)apache web 服務監控
2)mysql 數據庫監控
3)磁盤空間監控

二、流量監控
1)網站流量監控(網卡進入的數據量和網卡流出的數據量成比例)
監控的好處:只有監控才知道問題,有了問題才能改進
要監管,先要創建網絡管理協議,被監控的服務器所有開放smp,161端口,
監控者監控被監控者,mrtg監控圖。

cacti監控原理
Cacti 監測系統的工做原理

2、網絡數據轉發原理

一、網絡OSI七層模型

1.物理層:通訊線纜(光纜、無線),線纜的標準通通屬於物理層
2.數據鏈路層:完成加封(蓋個戳,加個標記)與解封、數據量層
加封:蓋個戳,加個標記, 數據鏈路層重點是在數據包外部加一個原MAC地址,目標Mac地址的這麼一個標記。mac地址:網卡的物理地址,也是網卡的實際地址。 加原Mac地址+目的mac地址。mac地址不能改變,在電腦出廠時已經刷在了網卡上了,Mac地址猶如身份證的ID是惟一的。
3.網絡層:ip地址層 網絡層+ip 地址層 在數據外圍加一個原ip地址和目的ip地址
4.傳輸層:在原有的上層的數據外圍標記兩個標籤:第一源端口,第二目的端口,從這個端口出去,訪問另外一個端口
5.會話層:通信狀態
6.表示層:上傳的數據是以什麼樣的編碼來編碼,編碼狀態和回話方式,不是以人來自定義來完成的,而是由人在應用層操做來完成的
7.應用層:通信軟件,人蔘與的都是在應用層,其餘的都是由軟件來完成

5.6.7層 (人與應用程序完成)
端口:是一個城堡,65535端口,80端口
MAC地址:介質訪問控制(Media Access Control)
IP(Internet Protocol)互聯網協議
TCP(Transmission Control Protocol)傳輸控制協議
WAN()廣域網
IP主要解決三個問題:尋址、路由、封裝
IP地址分爲兩部分:網絡地址+主機地址

clipboard.png

clipboard.png

clipboard.png

發送數據:PC-A

clipboard.png

接收數據:PC-B

clipboard.png

二、交換機

交換機:幾臺或者二十幾臺計算機插上網線二十幾我的就能夠通訊,這麼一個設備就叫作交換機。

交換機的大腦裏邊保存的是每一個計算機的網卡MAC地址與你所在的計算機的接口
圓圈裏邊打個叉爲路由器,方框四個箭頭的爲交換機。
交換機是經過源來學習的,經過學習,能夠把MAC地址,端口號完善

clipboard.png

clipboard.png

交換機A在接收到數據幀後,執行如下操做:
交換機A查找MAC地址表,(A向全部端口喊了一聲,誰的Mac地址爲44,請告訴我一聲)
交換機A學習主機11的MAC地址(把11和其端口記下)
交換機A向其餘全部端口發送廣播(廣播:發給這個區域內的全部的人)

交換機B在接收到數據幀後,執行如下操做:
交換機B查看MAC地址
交換機B學習(記下)源MAC地址和端口號
交換機B向全部端口廣播數據包

clipboard.png

clipboard.png

交換機的基於語言學習的功能,誰來就把誰記下,最終完善大腦裏邊的MAC地址表
實際例子:快遞送快件,找收件者,而且覈對收件者的信息

三、路由器

企業路由器設備:口比較少,不是互聯PC機的,而是互連網段的。(路由器由圓的扁形圖代替)
路由器是用來互聯不一樣網段的設備。(好比1網段和2網段,1.3和2.3),只記網段和接口!!!注意:絕對不能把路由器接在兩個相同的網段上。)
交換機:既能夠鏈接PC機,又能夠鏈接路由器。

路由器裏邊有一個路由表:

clipboard.png

一旦有路由器存在,是部門和部門,公司和公司之間的比較大的網絡通訊圖
路由器只記網段和接口(因此路由器的接口比較少)
交換機記錄MAC和接口

clipboard.png

四、ARP協議

ARP協議它是一種廣播,經過ip地址獲得MAC地址的廣播協議

clipboard.png

主機10.1.1.1發送ARP廣播,問誰有沒有10.1.1.2的MAC地址

全部主機都接收到了10.1.1.1的ARP廣播,但只有10.1.1.2給它一個單播回覆,並緩存10.1.1.1的MAC地址。

主機10.1.1.1將10.1.1.2的MAC地址保存到緩存中,發送數據。

ARP緩存的查詢:
在windows xp 操做系統中:

clipboard.png

代理ARP工做原理
路由器能夠分割網段和廣播,好比廣播後只能在同一個網段接收到,而在其餘的網段不會聽見廣播。

clipboard.png

名詞解釋:IP主要解決三個問題:尋址、路由、封裝IP地址分爲兩部分:網絡地址+主機地址子網掩碼:TCP/IP協議使用子網掩碼肯定主機是在本地子網中仍是在遠程網絡中。將Ip地址和子網掩碼排在一塊兒比較,就能夠分清楚改地址的網絡部分和主機部分:ip: 10.10.27.115子網掩碼:255.255.255.0網絡爲:10.10.27.0 主機地址爲:0.0.0.115當數據包到達10.10.27.0子網(從本地子網或遠程網絡),並且它的目標地址爲10.10.27.115時,計算機將從網絡接收它並對他進行處理。

相關文章
相關標籤/搜索