服務(wù)器架構(gòu)之性能擴(kuò)展-第一章(2) |
發(fā)布時(shí)間: 2012/9/16 1:39:30 |
隨著網(wǎng)站運(yùn)營(yíng)時(shí)間的增長(zhǎng),用戶量、數(shù)據(jù)量和訪問(wèn)量都在不斷地增長(zhǎng),于是大的訪問(wèn)量、大的存儲(chǔ)量和大的數(shù)據(jù)量,大的負(fù)載和網(wǎng)絡(luò)環(huán)境快速部署都會(huì)出現(xiàn)。于是網(wǎng)站運(yùn)營(yíng)問(wèn)題可以總結(jié)為一下四點(diǎn): <!--[if !supportLists]-->1.<!--[endif]-->大的訪問(wèn)量 <!--[if !supportLists]-->2.<!--[endif]-->大的存儲(chǔ)量 <!--[if !supportLists]-->3.<!--[endif]-->訪問(wèn)速度 <!--[if !supportLists]-->4.<!--[endif]-->服務(wù)器監(jiān)控 <!--[if !supportLists]-->5.<!--[endif]-->網(wǎng)絡(luò)環(huán)境的快速部署
1.1、大的訪問(wèn)量:解決方案:負(fù)載均衡和冗余技術(shù)。 負(fù)載均衡:讓網(wǎng)絡(luò)服務(wù)器的壓力均衡到不同的設(shè)備。 負(fù)載均衡技術(shù)方案:Cisco以太網(wǎng)通道,windows的NLB技術(shù),linux的lvs技術(shù)和F5等負(fù)載均衡器 Linux的LVS方案:
冗余技術(shù)方案:Cisco HSRP熱備份路由,windows集群技術(shù),linux的HA技術(shù),IBM的AIX技術(shù)。 冗余技術(shù):避免出現(xiàn)單點(diǎn)故障,實(shí)現(xiàn)故障切換,由此引申出集群技術(shù)。 集群就是指將多個(gè)服務(wù)器集中起來(lái)一起同時(shí)的進(jìn)行同一種服務(wù),在客戶看來(lái)只有一個(gè)服務(wù)器工作。 集群的特點(diǎn):只有一臺(tái)服務(wù)器提供服務(wù),其他的服務(wù)器處于休眠狀態(tài),如果這臺(tái)服務(wù)器出現(xiàn)問(wèn)題,其他的服務(wù)器將被激活,保證服務(wù)的不間斷性。只有負(fù)載均衡和冗余技術(shù)結(jié)合在一起,才能真正達(dá)到超級(jí)計(jì)算機(jī)功能。 1.2 大數(shù)據(jù)存儲(chǔ)主流數(shù)據(jù)庫(kù)類型:Mysql(中小型數(shù)據(jù)庫(kù)),oracle(甲骨文公司),DB2(IBM大型數(shù)據(jù)庫(kù)),Nosql(非關(guān)系型數(shù)據(jù)庫(kù),目前很火)。 對(duì)于大數(shù)據(jù)存儲(chǔ)我們一般可以使用主從復(fù)制和分區(qū)分表技術(shù)來(lái)解決。 Mysql主從復(fù)制原理圖:Binary log:記錄數(shù)據(jù)的增刪改日志,不記錄查詢服務(wù)。通過(guò)日志進(jìn)行數(shù)據(jù)的同步。
Mysql還有另外一種擴(kuò)展方式,Mysql讀取小表的速度更快。于是就引入了分表的概念,分表分為垂直分表和水平分表,一般遇到最多的還是水平分表,mysql5.1引進(jìn)了分區(qū)分表技術(shù)。分區(qū)分表是不改變表名,將表切成不同分區(qū)。 下面引入一種非關(guān)系型數(shù)據(jù)mongoDB,最近很火。
MongoDB是一個(gè)機(jī)遇分布式文件存儲(chǔ)的數(shù)據(jù)庫(kù),有C++語(yǔ)言編寫,是一個(gè)介于關(guān)系數(shù)據(jù)庫(kù)和非關(guān)系數(shù)據(jù)之間的產(chǎn)品。它最大的特點(diǎn)是支持的查詢語(yǔ)言非常強(qiáng)大,幾乎可以完成類似關(guān)系數(shù)據(jù)的絕大部分操作,還支持對(duì)數(shù)據(jù)庫(kù)建立索引。 1.3 網(wǎng)站加速技術(shù):目前主要實(shí)現(xiàn)方案:Squid代理緩存技術(shù),頁(yè)面靜態(tài)化緩存,Memcache和Sphinx搜索加速。 Squid可以實(shí)現(xiàn)緩存代理和數(shù)據(jù)的動(dòng)靜分離,將靜態(tài)數(shù)據(jù)存儲(chǔ)起來(lái),只有需要請(qǐng)求服務(wù)器的文件才到真正的服務(wù)器上去讀取,大大提高訪問(wèn)速度。
頁(yè)面靜態(tài)化:主要是通過(guò)模版實(shí)現(xiàn),如Thinkphp,Brophp,smarty模版等。 Memcache:是一個(gè)高性能的分布式的內(nèi)存對(duì)象緩存系統(tǒng),通過(guò)在內(nèi)存里維護(hù)一個(gè)統(tǒng)一巨大的hash表,它能存儲(chǔ)各種格式的數(shù)據(jù),包括圖像、視頻、文件等。簡(jiǎn)單的說(shuō),就是講數(shù)據(jù)調(diào)用到內(nèi)存中,然后從內(nèi)存讀取數(shù)據(jù),從而大大提高讀取速度。 缺點(diǎn):遇到斷電,服務(wù)器宕機(jī),會(huì)造成數(shù)據(jù)的丟失。尤其是對(duì)于網(wǎng)站數(shù)據(jù)重要性高的網(wǎng)站不適合。 Sphinx全文檢索:sphinx是一個(gè)機(jī)遇SQL的全文檢索引擎,可以結(jié)合Mysql,PostgreSQL做全文檢索,他可以提供比數(shù)據(jù)本身更專業(yè)的搜索功能,使得應(yīng)用程序更容易實(shí)現(xiàn)專業(yè)化的全文檢索。Sphinx單一索引,最大可以包含1億條記錄,全文檢索速度1000萬(wàn)條只需3-4分鐘,創(chuàng)建1000萬(wàn)條索引在50分鐘完成。<!--[endif]-->
1.4服務(wù)監(jiān)控: apache服務(wù)監(jiān)控,mysql服務(wù)監(jiān)控,磁盤空間監(jiān)控,流量監(jiān)控。
警報(bào):郵件警報(bào),Postfix發(fā)郵件系統(tǒng),sendmail發(fā)郵件系統(tǒng)和dovecot收郵件系統(tǒng)。電子郵件發(fā)是由SMTP(25端口),收郵件是由POP3協(xié)議(110端口)完成的。
1.5網(wǎng)絡(luò)環(huán)境的快速部署網(wǎng)絡(luò)環(huán)境的快速部署變得越來(lái)越容易,在快速部署中如果可以用主機(jī)管理面板,這樣對(duì)于主機(jī)的管理變得越來(lái)越方便。 Windows可以使用plesk面板,linux可以使用cpanel面板。 1.6 壓力測(cè)試工具:Apache壓力測(cè)試軟件ab,是由httpd-2.2.3-43.e15.centos軟件提供,可能要?jiǎng)?chuàng)建很多文件然后刪除。 Mysql壓力測(cè)試:mysql5.1.4開始帶有一個(gè)壓力測(cè)試工具mysqlslap,通過(guò)模擬多個(gè)并發(fā)客戶端訪問(wèn)mysql來(lái)進(jìn)行測(cè)試。 億恩-天使(QQ:530997) 電話 037160135991 服務(wù)器租用,托管歡迎咨詢。
本文出自:億恩科技【mszdt.com】 服務(wù)器租用/服務(wù)器托管中國(guó)五強(qiáng)!虛擬主機(jī)域名注冊(cè)頂級(jí)提供商!15年品質(zhì)保障!--億恩科技[ENKJ.COM] |