其中第1部分架構為綜述。第2-8部分各個端用到的技術,點到為止,沒有詳述。第9和10部分是監控和部署,排查問題和解決問題時配合使用。
一:伺服器總體架構綜述
經曆的階段:
1:應用服務和資料服務,應用專門的圖片伺服器,視頻伺服器。
2:緩衝改善網站效能,redis,memcached緩衝。
3:應用伺服器叢集改善網站的並發處理能力,這個時候就應該讀寫分離或雙主讀寫分離。
4:使用反向 Proxy和 CDN加速網站
5:分散式資料庫系統,資料庫分表分區階段
6:NoSQL伺服器,減輕應用程式管理諸多資料來源的麻煩。
7:業務拆分,將一個網站拆分成許多不同的應用,每個應用獨立部署。
經曆上面七個階段後,大體伺服器架構如下圖:
二:資料庫技術
應用服務和資料服務分離;
資料庫讀寫分離
分散式資料庫系統
分庫分表
資料庫索引
資料庫連接池
SQL最佳化
資料庫相關設定
三:緩衝技術
使用緩衝改善網站效能;
提高快取命中率;
redis叢集相關設定;
四:後端技術
重新導向
使用反向 Proxy
DNS輪詢,不能按伺服器能力分配任務
CDN,而且按流量計費,價格也比較昂貴。
IP負載平衡:F5,VS/NAT(基於網路位址轉譯技術)、VS/TUN(基於IP隧道技術)和VS/DR(基於直接路由技術)
鏡像(同學所在的教育行業在用)
五:業務拆分
將一個網站拆分成許多不同的應用,每個應用獨立部署。應用之間可以通過一個超連結建立關係(在首頁上的導航連結每個都指向不同的應用地址),也可以通過訊息佇列進行資料分發,當然最多的還是通過訪問同一個資料存放區系統來構成一個關聯的完整系
六:前端
頁面靜態化
前端緩衝
IOS,安卓自身資料庫使用
IOS,安卓自身檔案使用
八:其他
替換Apache為Nginx;
隊列系統就出場了,就以RabbitMQ為例時
mysql硬體設定
九:監視軟體
najios 監控服務運行狀態和網路資訊;
zabbix 監控服務運行狀態和網路資訊;
cactic 把機器資訊和資料資訊圖表化地展現給使用者。
十:部署軟體
saltstack
chef
puppet
ansibel