一、大型web構架設計
大訪問量,大資料量,大流量、大儲存、瞬間爆發、大儲存、查詢維度多、動靜分離、訪問速度滯緩問題。
1. **大訪問量
1.1 負載均衡(linux 的lvs(開源)或者windows的nlb技術 或者f5負載均衡器(100w)或者cisco的乙太網通道)
輪詢的形式,把眾多的訪問人群和流量分流到不同的裝置,例如伺服器,讓每個伺服器的壓力變小。輪詢過程中,每台伺服器都是啟用狀態。
lvs集群採用三層結構, 負載排程器、伺服器池、共享儲存主要部分組成。
1.2 冗餘技術(cisco hsrp熱備份路由,windows集群技術,linux ha集群技術(開源),ibm aix集群(昂貴))
斷電情況,或者說伺服器宕機,備份一台伺服器,避免單點故障。
熱備份路由:線路層面的冗餘(必須考慮)。多台路由器前端虛擬乙個路由器,使用者群體訪問網路的時候,它會自動將資料請求到啟用的一台路由器,其他的路由器處於休眠狀態。
伺服器集群:通過心跳線監控啟用伺服器是否宕機,宕機則啟用備份伺服器。
1.3 集群技術
伺服器集群,只有乙個伺服器在啟用狀態,其他的伺服器處於休眠狀態。
2. 大資料儲存
目前主流資料庫有mysql,oracle(100w),db2(100w),nosql
2.1 資料庫主從(負載)
mysql 主從主要依賴|binary log 日誌 ,binary log 日誌主要記錄資料庫的增刪改操作。
寫入操作走主伺服器, 讀取操作走從伺服器。
2.2 資料庫集群(冗餘)
2.3 mysql分庫分表
大資料量儲存在一張表造成查詢慢,對cpu的衝擊變大。
垂直分表和水平分表。將大表分成各個小表。
弊端:sql 語句需要修改。資料量變大又要修改表。解決:分割槽技術
2.4 mysql分割槽技術
分割槽技術使得表的名稱不變,內部物理儲存變為多個檔案,解決了分表帶來的弊端。
3. **加速技術
3.1 squid **快取技術
反向快取
3.2 頁面靜態化快取
apache通過偽靜態功能 mod_rewrite 模組。
模版技術(smarty 模版)
3.3 memcache
memcache 是乙個高效能的分布式記憶體物件快取系統,通過在記憶體裡維護乙個統一的巨大的hash表。
程序是memcached
弊端:伺服器突然宕機或者斷電,記憶體清空,一旦記憶體清空,資料就會丟失。
3.4 sphinx搜尋引擎
可以結合mysql做全文檢索。為php等指令碼語言提供樂介面。
中文分詞技術和高亮技術。
4. 伺服器監控
可以託管到聯通機房或者移動機房等。
snmp:簡單的網路管理協議。
被監控端的所有伺服器安裝snmp服務端。
監控端安裝惠普公司或者ibm公司的監控軟體。或者使用linux伺服器的mrtg繪製流量圖。
通過對方設定的管理密碼,被監控著將本機上所有的裝置資訊如記憶體佔用量,cpu使用量,網絡卡流量儲存下來。等待監控端的定期監控
4.1 服務監控
1. apache web服務監控
2. mysql資料庫監控
3. 磁碟空間監控
4.2 流量監控
1. **流量監控
4.3 linux郵件系統
1. postfix 發郵件系統(推薦)
2. sendmail 發郵件系統
3. dovecot 收郵件系統
4. apache 壓力測試(ab)
5. mysql 壓力測試(mysqlslap)
架構師速成1 前言
從事it工作10餘年,痛並快樂著。忠告以下人員遠離it 不能吃苦 耐不住寂寞 想賺大錢 如果你不是上面的人,而且非常想成為架構師話,請繼續看下去。需要3年時間 需要超強自制力 需要極強計畫能力 需要吃苦 如果你能滿足以上4條,那肯定就可以速成。可能有人會說 3年也算速成,這也太龜速了 我回答你,如果...
軟體架構師和企業家
軟體架構師和企業家有什麼關係?有人可能會問?其實,這只是我一時的突發奇想。在我看來,從某種程度上來講,架構師和企業家的基本工作是非常相似的。關於企業家大體上做什麼事情,我主要是從 窮爸爸,富爸爸 上了解的。乙個企業家工作的目的是,建立乙個能夠正常運轉的企業。要讓乙個企業能夠正常運轉,首先就要建立乙個...
系統架構師 基礎到企業應用架構 系列索引
一篇都是自己在系統架構過程中的總結和經驗,每一篇我都會抱著認真的態度去完成,寧缺毋濫的原則。希望本系列看完之後不但能夠幫助看過這個系列的人對系統架 構有深刻的認識,並且能夠掌握系統架構中的必備知識,應用到自己的工作中去,更可以共同提高大家的個人能力。本系列希望能夠拋磚引玉,希望大家能夠多提出寶 貴意...