基于Linux的企業(yè)LNMP網(wǎng)站環(huán)境搭建與hadoop引入_第1頁(yè)
基于Linux的企業(yè)LNMP網(wǎng)站環(huán)境搭建與hadoop引入_第2頁(yè)
基于Linux的企業(yè)LNMP網(wǎng)站環(huán)境搭建與hadoop引入_第3頁(yè)
基于Linux的企業(yè)LNMP網(wǎng)站環(huán)境搭建與hadoop引入_第4頁(yè)
基于Linux的企業(yè)LNMP網(wǎng)站環(huán)境搭建與hadoop引入_第5頁(yè)
已閱讀5頁(yè),還剩29頁(yè)未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

目錄TOC\o"1-3"\h\u7894摘要 328159Abstract 479301緒論 5135891.1研究背景 5108281.2研究意義 5194521.3國(guó)內(nèi)外研究現(xiàn)狀 6110401.3.1國(guó)外研究現(xiàn)狀 7103801.3.2國(guó)內(nèi)研究現(xiàn)狀 8269962主要研究與設(shè)計(jì)內(nèi)容 977203關(guān)鍵技術(shù)分析 9289193.1LNMP架構(gòu) 9246303.2Nginx服務(wù)器 10276853.3PHP 12187603.4MyCat讀寫(xiě)分離與主從備份技術(shù) 13177283.5prometheus數(shù)據(jù)監(jiān)控 1452853.6Hadoop分布式環(huán)境 1692754環(huán)境架構(gòu)拓?fù)浞治?18258825主要配置實(shí)現(xiàn) 20227335.1負(fù)載均衡配置實(shí)現(xiàn) 2028635.2讀寫(xiě)分離配置 21313025.3Hadoop集群配置 22200276測(cè)試 2448286.1網(wǎng)站正常運(yùn)行測(cè)試 24222556.2、負(fù)載均衡測(cè)試 2467886.3、雙機(jī)熱備份測(cè)試 2539126.4、Mycat讀寫(xiě)分測(cè)試 26260196..5、Hadoop環(huán)境測(cè)試 27110216.6、Prometheus監(jiān)控測(cè)試 2835977結(jié)論及優(yōu)勢(shì) 29259237.1在成本與維護(hù)上 29207807.2在安全與穩(wěn)定上 2987677.3可擴(kuò)展性上 29297747.4在可發(fā)展性 3025401參考文獻(xiàn) 312147致謝 32基于Linux的企業(yè)LNMP網(wǎng)站環(huán)境搭建與hadoop引入

摘要:隨著互聯(lián)網(wǎng)的快速發(fā)展,第三產(chǎn)業(yè)的網(wǎng)上業(yè)務(wù)無(wú)論是從廣度還是深度都有了巨大地拓展,各中小企業(yè)機(jī)構(gòu)為滿(mǎn)足線(xiàn)上業(yè)務(wù)的需求,打造出了一系列的網(wǎng)站,這也就不可避免地造成了訪(fǎng)問(wèn)量的增加,也為網(wǎng)站的服務(wù)器正常運(yùn)行帶來(lái)了巨大的負(fù)擔(dān),進(jìn)而可能帶來(lái)網(wǎng)站癱瘓導(dǎo)致企業(yè)蒙受損失,尤其是電商行業(yè)的發(fā)展,使得在“雙11”、“雙12”這些日子中出現(xiàn)訪(fǎng)問(wèn)量的巨增,帶來(lái)了更大的安全隱患[1],因此為解決這一問(wèn)題,一系列的企業(yè)網(wǎng)站環(huán)境架構(gòu)方式被推出;本文將通過(guò)大型企業(yè)網(wǎng)站環(huán)境搭建對(duì)LNMP架構(gòu)、監(jiān)控、負(fù)載均衡、服務(wù)器主從備份方面進(jìn)行研究,并通過(guò)Hadoop實(shí)現(xiàn)對(duì)網(wǎng)站對(duì)日志處理,以打造出一個(gè)可以更好地繼承傳統(tǒng)架構(gòu)優(yōu)點(diǎn)的基礎(chǔ)上,添加Mycat,Hadoop擴(kuò)展,在各方面性能都良好的,寬領(lǐng)域網(wǎng)站架構(gòu)。

關(guān)鍵詞:LNMP,網(wǎng)站,性能,Mycat,HadoopLinuxbasedLNMPwebsiteenvironmentconstructionandHadoopintroductionAbstract:WiththerapiddevelopmentoftheInternet,theonlinebusinessofthetertiaryindustryhasbeengreatlyexpandedinbothbreadthanddepth.Inordertomeettheneedsofonlinebusiness,varioussmallandmedium-sizedenterpriseshavecreatedaseriesofwebsites,whichinevitablyresultsintheincreaseofvisits,andalsobringsahugeburdentothenormaloperationofthewebsiteserver,whichmayleadtowebsiteparalysisParalysisleadstothelossofenterprises,especiallythedevelopmentofe-commerceindustry,whichleadstoahugeincreaseinthenumberofvisitorsinthe"double11"and"double12"days,bringinggreatersecurityrisks[1].Therefore,inordertosolvethisproblem,aseriesofenterprisewebsiteenvironmentarchitecturemethodsarepushedout;thispaperwillbuildLNMParchitecture,monitoring,loadbalancing,servicethroughlargeenterprisewebsiteenvironmentServermasterandslavebackupresearch,andthroughHadooptoachievethewebsitelogprocessing,inordertocreateabetterinheritanceoftheadvantagesoftraditionalarchitecture,onthebasisofaddingMYCAT,Hadoopextension,inallaspectsofgoodperformance,widefieldwebsitearchitecture.Keywords:LNMP,website,performance,MYCAT,Hadoop1緒論1.1研究背景隨著互聯(lián)網(wǎng)的不斷發(fā)展,人們獲取信息的普遍從傳統(tǒng)的實(shí)體轉(zhuǎn)化為了網(wǎng)絡(luò)的虛擬化方式,甚至為人們提供了豐富的網(wǎng)絡(luò)網(wǎng)絡(luò)商務(wù)活動(dòng)以滿(mǎn)足人們?nèi)找嬖鲩L(zhǎng)的需求,這便吸引了許多企業(yè)越來(lái)越注重線(xiàn)上的業(yè)務(wù)。在互聯(lián)網(wǎng)進(jìn)入國(guó)內(nèi)短短時(shí)間便開(kāi)辟出了大量的線(xiàn)上業(yè)務(wù)市場(chǎng),遍布了我國(guó)各個(gè)領(lǐng)域,許多實(shí)體經(jīng)濟(jì)業(yè)務(wù)也開(kāi)始轉(zhuǎn)型或開(kāi)辟了相應(yīng)的線(xiàn)上業(yè)務(wù),中國(guó)已經(jīng)成為了一個(gè)互聯(lián)網(wǎng)的使用大國(guó)。尤其對(duì)與電子商務(wù)領(lǐng)域,是實(shí)實(shí)在在的為人們提供了便利,在龐大的市場(chǎng)下,各企業(yè)為消費(fèi)者提供了如B2C、B2B、C2C、C2B等形形色色的平臺(tái)力求獲取更大的市場(chǎng)。在網(wǎng)絡(luò)設(shè)備普及度高,網(wǎng)絡(luò)發(fā)達(dá)的現(xiàn)在,在潛移默化人們之中通過(guò)各企業(yè)提供的網(wǎng)站來(lái)獲取信息,進(jìn)行網(wǎng)絡(luò)生活已經(jīng)成為了人們的主要途徑。但隨著客戶(hù)訪(fǎng)問(wèn)的日益增多,各網(wǎng)站也將承受巨大的流量負(fù)擔(dān),因此企業(yè)環(huán)境的高可用架構(gòu)就成了各個(gè)企業(yè)開(kāi)辟線(xiàn)上業(yè)務(wù)的重點(diǎn),尤其是在“雙11”、“雙12”這樣的時(shí)候,企業(yè)網(wǎng)站能夠提供較高的并發(fā)量[1],實(shí)現(xiàn)業(yè)務(wù)的快速響應(yīng),并且面對(duì)巨大的交易訪(fǎng)問(wèn)量仍可穩(wěn)定運(yùn)行對(duì)于向用戶(hù)提供一個(gè)好的上網(wǎng)環(huán)境是十分重要的。目前市面上存在兩種主要的架構(gòu)方式——LAMP、LAMP。兩者的主要差距在于N(Nginx),相比于傳統(tǒng)的Apache服務(wù)器的一個(gè)連接對(duì)應(yīng)一個(gè)進(jìn)程的同步多進(jìn)程模型[2],Nginx則采用異步的方式,因此,Nginx可以使用更少的資源,實(shí)現(xiàn)更多的并發(fā)量,這也就帶動(dòng)了LNMP的廣泛普及,也是這種架構(gòu)得到不斷的升級(jí)優(yōu)化,本文將就此在LNMP架構(gòu)上進(jìn)行研究,打造一個(gè)更具實(shí)效性,高可用的網(wǎng)站環(huán)境架構(gòu)[3]。1.2研究意義對(duì)于企業(yè)而言,網(wǎng)站就是其牌面,而一個(gè)好的架構(gòu)環(huán)境可以讓網(wǎng)站實(shí)現(xiàn)可持續(xù)的運(yùn)作,是支撐起牌面的基礎(chǔ);而對(duì)于環(huán)境而言主要在于可以提供更高的并發(fā)量,更高的穩(wěn)定性。本文通過(guò)對(duì)LNMP的架構(gòu)的升級(jí)優(yōu)化進(jìn)行研究,打造一個(gè)在效率,并發(fā),穩(wěn)定性都有比較好的優(yōu)勢(shì)的網(wǎng)站架構(gòu)。課題研究主要意義為:通過(guò)對(duì)各關(guān)鍵技術(shù)對(duì)比分析,選取合適的技術(shù)及解決方法,在LNMP總體框架的基礎(chǔ)上,從安全、經(jīng)濟(jì)、長(zhǎng)期性使用于維護(hù)方面出發(fā),構(gòu)建出適應(yīng)于時(shí)代發(fā)展,可以更快解決市場(chǎng)需求的架構(gòu)體系。實(shí)現(xiàn)對(duì)環(huán)境中的各服務(wù)器進(jìn)行實(shí)時(shí)的監(jiān)控,滿(mǎn)足目前企業(yè)對(duì)于網(wǎng)站維護(hù)的提供實(shí)時(shí)的數(shù)據(jù)支持需求。通過(guò)Hadoop實(shí)現(xiàn)了對(duì)網(wǎng)站運(yùn)行過(guò)程中的日志數(shù)據(jù)等的存儲(chǔ)及后期分析問(wèn)題,滿(mǎn)足在大數(shù)據(jù)環(huán)境下,方便企業(yè)對(duì)網(wǎng)站用戶(hù)訪(fǎng)問(wèn)數(shù)據(jù)的統(tǒng)計(jì)需求以制定發(fā)展及運(yùn)營(yíng)戰(zhàn)略。1.3國(guó)內(nèi)外研究現(xiàn)狀隨著作為目前各類(lèi)網(wǎng)站需求的不斷擴(kuò)大,各種架構(gòu)技術(shù)的不斷成熟,LNMP使用量大的架構(gòu)方式,它采用了開(kāi)源免費(fèi)的軟件進(jìn)行整體架構(gòu),不像那些封閉式的軟件,由于安全漏洞過(guò)于隱蔽,造成相關(guān)問(wèn)題解決方法困難,也為網(wǎng)站維護(hù)于后期的擴(kuò)展增添了負(fù)擔(dān);并且,由于開(kāi)源性比較強(qiáng),也在極大程度上降低了企業(yè)架構(gòu)得成本與后期維護(hù)的一系列問(wèn)題。與傳統(tǒng)的Java/J2EE、.NET相比,LNMP的架構(gòu)方式無(wú)論是在性能、經(jīng)濟(jì)成本以及維護(hù)與擴(kuò)展性上都占有相當(dāng)不錯(cuò)的優(yōu)勢(shì),這也是為什么這種架構(gòu)不斷被應(yīng)用,升級(jí);其組成部分也廣泛被應(yīng)用于大型企業(yè)的子網(wǎng)部分。Hadoop作為一個(gè)用java語(yǔ)言實(shí)現(xiàn)開(kāi)源軟件框架,具有擴(kuò)容能力強(qiáng)、成本低、高效率、可靠性強(qiáng)的特點(diǎn),是一個(gè)開(kāi)發(fā)和運(yùn)行處理大規(guī)模數(shù)據(jù)的軟件平臺(tái),當(dāng)下的Hadoop已經(jīng)成長(zhǎng)為一個(gè)龐大的體系,隨著生態(tài)系統(tǒng)的成長(zhǎng),內(nèi)容的不斷豐富,Hadoop也不斷被企業(yè)所使用[3]。在大數(shù)據(jù)時(shí)代下,Hadoop生態(tài)可以實(shí)現(xiàn)數(shù)據(jù)的存儲(chǔ)、處理分析,以滿(mǎn)足企業(yè)對(duì)的戰(zhàn)略制定需要。本節(jié)將從國(guó)內(nèi)與國(guó)外兩個(gè)空間維度,分析LNMP與Hadoop的現(xiàn)狀。1.3.1國(guó)外研究現(xiàn)狀LNMP就是Linux系統(tǒng)下Nginx+MySQL+PHP這種網(wǎng)站環(huán)境架構(gòu)。它屬于LAMP的升級(jí)版本,其中主要的升級(jí)模塊就是Apache服務(wù)器。而兩者最核心的區(qū)別就在于處理請(qǐng)求的方式不同,Apache采用同步處理請(qǐng)求的方式,雖然在內(nèi)存上會(huì)耗費(fèi)更大的資源來(lái)滿(mǎn)足每一個(gè)連接,如果企業(yè)出現(xiàn)像“雙11”、“雙12”這樣的節(jié)日,在短時(shí)間網(wǎng)站會(huì)接受上億的請(qǐng)求,這勢(shì)必需要對(duì)應(yīng)的服務(wù)器具有強(qiáng)大的內(nèi)存空間才可以滿(mǎn)足用戶(hù)的需求,但是在實(shí)際上這是不可取的。相反,Nginx則是采用異步的方式來(lái)處理請(qǐng)求,可以使用更小的有限內(nèi)存資源滿(mǎn)足過(guò)多的請(qǐng)求連接需求,這也就實(shí)現(xiàn)了網(wǎng)站可以在短時(shí)間具有強(qiáng)大的穩(wěn)定性;并且,在LNMP架構(gòu)終加入Nginx服務(wù)器的負(fù)載均衡配置無(wú)疑是給網(wǎng)站加了“保險(xiǎn)”,也就使得網(wǎng)站同時(shí)滿(mǎn)足了高并發(fā)量與安全穩(wěn)定的需求。由于LNMP在各企業(yè)間受到廣泛的追捧與其各種腳本的不斷出現(xiàn),使得LNMP無(wú)論是安裝還是后期的維護(hù)都十分簡(jiǎn)潔,更是由于強(qiáng)大的并發(fā),穩(wěn)定性的可靠保障使得其發(fā)展水平不斷提高。另外由于Linux系統(tǒng)的不斷發(fā)展,如Centos、Redhat等廠(chǎng)家更是推出了一系列滿(mǎn)足企業(yè)需要的系統(tǒng)環(huán)境,加上數(shù)據(jù)庫(kù)強(qiáng)大的支持,PHP的不斷成熟更是讓LNMP有了發(fā)展的基礎(chǔ),逐漸替代了傳統(tǒng)的LAMP架構(gòu),是具有非常可觀的發(fā)展前景的。而對(duì)于Hadoop而言,它最初起源于Google的BigTable,在DougCutting受Google的一篇名為“MapReduce:SimplifiedDataProcessingonLarge”的論文啟發(fā)后將MapReduce計(jì)算框架與NDFS相集合而打造出的一個(gè)能夠?qū)Υ髷?shù)據(jù)進(jìn)行分布式處理的軟件框架。隨著Hadoop生態(tài)的不斷發(fā)展,Hadoop的使用場(chǎng)景也在不斷的擴(kuò)展,就如我們最熟悉的“瀏覽器之爭(zhēng)”。每一個(gè)瀏覽器都有一個(gè)最基本的功能那就時(shí)搜索,兒搜索最先要處理的問(wèn)題就是如何實(shí)現(xiàn)對(duì)日益增長(zhǎng)的數(shù)據(jù)的存儲(chǔ)與處理。Hadoop的出現(xiàn)正好就解決了這方面的一些問(wèn)題,它可以將將龐大的數(shù)據(jù)進(jìn)行分布式存儲(chǔ),在用戶(hù)對(duì)相應(yīng)關(guān)鍵字進(jìn)行搜索時(shí)實(shí)現(xiàn)集群中的分布式處理快速相應(yīng)用戶(hù)的搜索需求;并且,目前隨著大數(shù)據(jù)的不斷發(fā)展,AI技術(shù)的不斷成熟,Hadoop生態(tài)迎來(lái)了更廣闊的應(yīng)用空間。而將LNMP架構(gòu)與Hadoop生態(tài)相集合,在前期可能有點(diǎn)“大材小用”,但是信息時(shí)代的趨勢(shì)必然會(huì)向其靠齊。所以與Hadoop相集合進(jìn)行企業(yè)架構(gòu)無(wú)疑是如虎添翼,可以有效的實(shí)現(xiàn)對(duì)于網(wǎng)站日志數(shù)據(jù)的存儲(chǔ),并且可以實(shí)現(xiàn)對(duì)各類(lèi)數(shù)據(jù)的分析以應(yīng)對(duì)多變的市場(chǎng)。1.3.2國(guó)內(nèi)研究現(xiàn)狀在國(guó)內(nèi),由于互聯(lián)網(wǎng)技術(shù)在國(guó)內(nèi)的不斷普及,如今的中國(guó)已經(jīng)成為了互聯(lián)網(wǎng)使用大國(guó),隨著國(guó)內(nèi)市場(chǎng)的不斷擴(kuò)大,LNMP技術(shù)開(kāi)始不斷用于企業(yè)網(wǎng)站架構(gòu),同時(shí),由于經(jīng)濟(jì)全球化,與國(guó)際合作,通過(guò)互聯(lián)網(wǎng),世界已經(jīng)連結(jié)成了一個(gè)整體,這也讓LNMP相關(guān)核心技術(shù)在中國(guó)得到了不斷地發(fā)展,讓LNMP架構(gòu)成為了國(guó)內(nèi)企業(yè)首選的網(wǎng)站環(huán)境架構(gòu)方式。由于LNMP主要由Linux操作系統(tǒng)、Nginx服務(wù)器、Mysql服務(wù)器、PHP腳本語(yǔ)言這4種開(kāi)源免費(fèi)的軟件構(gòu)成,并且都經(jīng)歷了長(zhǎng)期的實(shí)踐考驗(yàn),具有很好的穩(wěn)定性,高并發(fā)性等特點(diǎn),雖然由于中國(guó)互聯(lián)網(wǎng)的起步比較晚,但是LNMP這一低成本、高效率的架構(gòu)方式很快就受到了企業(yè)的追捧,許多企業(yè)一開(kāi)始都是采用這一架構(gòu)。而作為核心服務(wù)器的Nginx服務(wù)器更是由于其出色的異步請(qǐng)求處理方式,具有占據(jù)資源少,并發(fā)能力強(qiáng)的“小巧玲瓏”的特點(diǎn)使得的特點(diǎn),讓作為龍頭企業(yè)的百度、京東、新浪等都采用了這一服務(wù)。對(duì)于Hadoop,國(guó)內(nèi)來(lái)說(shuō),Hadoop并不會(huì)跟某種具體的行業(yè)或者某個(gè)具體的業(yè)務(wù)掛鉤,它只是一種用來(lái)做海量數(shù)據(jù)分析處理的工具。而在中國(guó)已經(jīng)擁有了良好的發(fā)展勢(shì)頭,比如早在2006年百度就開(kāi)始引入Hadoop,到目前已經(jīng)擁有上萬(wàn)臺(tái)機(jī)器,每天輸入數(shù)據(jù)超過(guò)7500TB,并且百度還在此基礎(chǔ)上開(kāi)發(fā)了自己的日志分析平臺(tái)與數(shù)據(jù)倉(cāng)庫(kù)系統(tǒng);而阿里巴巴還開(kāi)發(fā)出了WebIDE集成開(kāi)發(fā)環(huán)境;騰訊也利用Hadoop-Hive開(kāi)發(fā)出了自己的數(shù)據(jù)倉(cāng)庫(kù)系統(tǒng)TDW,為騰訊各個(gè)產(chǎn)品線(xiàn)提供了基礎(chǔ)的云計(jì)算與云存儲(chǔ)服務(wù)。這可以在LNMP環(huán)境下進(jìn)行用戶(hù)、環(huán)境維護(hù)的大量數(shù)據(jù)的相關(guān)處理[4]。2主要研究與設(shè)計(jì)內(nèi)容本文以L(fǎng)NMP的企業(yè)的企業(yè)架構(gòu)實(shí)現(xiàn)網(wǎng)站的運(yùn)行過(guò)程出發(fā),同時(shí)加入Hadoop的環(huán)境搭建實(shí)現(xiàn)后續(xù)企業(yè)的大數(shù)據(jù)處理,對(duì)LNMP與Hadoop的關(guān)鍵技術(shù),與搭建流程、架構(gòu)方式進(jìn)行研究,主要包括以下方面:1、在互聯(lián)網(wǎng)快速發(fā)展的情況下,為滿(mǎn)足企業(yè)網(wǎng)站高并發(fā),穩(wěn)定性強(qiáng)的要求,在LNMP架構(gòu)的思想上,設(shè)計(jì)出一個(gè)普及性強(qiáng),實(shí)用性強(qiáng)的架構(gòu)。主要通過(guò)Nginx負(fù)載均很技術(shù)實(shí)現(xiàn)高可用,通過(guò)Mycat實(shí)現(xiàn)數(shù)據(jù)的讀寫(xiě)分離達(dá)到網(wǎng)站的業(yè)務(wù)處理能力,提高穩(wěn)定性與時(shí)效性,通過(guò)Keepalived實(shí)現(xiàn)服務(wù)器的雙機(jī)熱備份提升架構(gòu)的高可用。2、為滿(mǎn)足對(duì)架構(gòu)環(huán)境的實(shí)時(shí)監(jiān)控與預(yù)警,提高網(wǎng)站環(huán)境的安全性,引入了“普羅米修斯”監(jiān)控系統(tǒng),對(duì)架構(gòu)中的服務(wù)器進(jìn)行實(shí)時(shí)的數(shù)據(jù)監(jiān)控,預(yù)防突發(fā)事件。3、在大數(shù)據(jù)時(shí)代下,為滿(mǎn)足企業(yè)收集網(wǎng)站流量與流量管理,以及后期對(duì)流量的采集分析的需求提供Hadoop大數(shù)據(jù)處理機(jī)制,有效存儲(chǔ)網(wǎng)站數(shù)據(jù)供后續(xù)分析處理,為企業(yè)戰(zhàn)略部署提供數(shù)據(jù)支撐。3關(guān)鍵技術(shù)分析3.1LNMP架構(gòu)LNMP架構(gòu)由傳統(tǒng)的LAMP架構(gòu)在面對(duì)不同的需求升級(jí)而來(lái),主要是指基于Linux環(huán)境,通過(guò)Nginx、Mysql、PHP三大主要軟件組成。改架構(gòu)繼承了Linux的開(kāi)源安全性特點(diǎn),在很大層面上避免了像Windows這樣的封閉式操作系統(tǒng)的安全漏洞;同時(shí)沿用了Mysql數(shù)據(jù)庫(kù)這一使用場(chǎng)景多,處理效率比較不錯(cuò)的關(guān)系型數(shù)據(jù)庫(kù);通過(guò)PHP腳本語(yǔ)言實(shí)現(xiàn)相應(yīng)資源的處理。可以說(shuō)該架構(gòu)是集合了極大主流軟件的優(yōu)勢(shì)特點(diǎn),相輔相成,在很大程度上使得此架構(gòu)可以發(fā)揮出最大的性能,可以更好地滿(mǎn)足企業(yè)的業(yè)務(wù)需求,比如在面對(duì)龐大的連接并發(fā)量時(shí),PHP內(nèi)部具有相應(yīng)的緩沖機(jī)制來(lái)處理數(shù)據(jù)庫(kù)連接,但是由于傳統(tǒng)PHP處理動(dòng)態(tài)能力的有限性會(huì)使得MySQL連接回收機(jī)制出現(xiàn)問(wèn)題,造成“偽泄露”現(xiàn)象,而通過(guò)Nginx可以在源頭上先進(jìn)行連接量的優(yōu)化處理,通過(guò)PHP-FPM實(shí)現(xiàn)后續(xù)的連接實(shí)際處理就可以解決問(wèn)題。為了在其基礎(chǔ)架構(gòu)上進(jìn)一步進(jìn)行架構(gòu)得優(yōu)化以滿(mǎn)足現(xiàn)實(shí)需求,本架構(gòu)其主要業(yè)務(wù)過(guò)程可以通過(guò)如下幾個(gè)子過(guò)程:首先用戶(hù)向網(wǎng)站發(fā)起請(qǐng)求,Nginx雙機(jī)熱備份服務(wù)器的主服務(wù)器會(huì)優(yōu)先獲取到請(qǐng)求,通過(guò)IP-Hash算法,將該請(qǐng)求發(fā)送到對(duì)應(yīng)的Web服務(wù)器,Web服務(wù)器收到請(qǐng)求后會(huì)將請(qǐng)求進(jìn)行后臺(tái)處理后對(duì)數(shù)據(jù)性操作發(fā)送到Mycat服務(wù)器,Mycat讀寫(xiě)服務(wù)器可以識(shí)別其操作的讀寫(xiě)操作的不同,將業(yè)務(wù)處理進(jìn)一步發(fā)送到對(duì)應(yīng)的讀或?qū)憯?shù)據(jù)庫(kù)上進(jìn)行最終操作后返回相應(yīng)結(jié)果。3.2Nginx服務(wù)器從Nginx是為俄羅斯訪(fǎng)問(wèn)量第二的Rambler所開(kāi)發(fā)的這一應(yīng)用場(chǎng)景就可以看出Nginx的目的解決了高并發(fā)連接的問(wèn)題,自然也就是大數(shù)據(jù)時(shí)代中,各企業(yè)門(mén)戶(hù)網(wǎng)站的首選,另外,它集Web服務(wù)器、反向代理、郵件服務(wù)器于一身,使得它的應(yīng)用場(chǎng)景比較廣[4]。相比于Apache服務(wù)器以占據(jù)更多內(nèi)存資源采用多對(duì)多的連接與進(jìn)程同步方式,Nginx則采用占據(jù)更少資源實(shí)現(xiàn)更高并發(fā)量的異步方式,并且可以從Nginx與Apache的綜合性能對(duì)比圖中看出Nginx在總體方面是Apache的升級(jí),Nginx通過(guò)異步套接字事件驅(qū)動(dòng)進(jìn)行請(qǐng)求的接受,在很大層面上減少了服務(wù)器CPU的消耗,節(jié)省了系統(tǒng)資源[5]。所以說(shuō)在如今網(wǎng)絡(luò)流量數(shù)據(jù)龐大的時(shí)代前提下是Apache服務(wù)器最好的替代品。表3.2.1異步處理的Nginx與同步處理Apache性能對(duì)比服務(wù)器NginxApache反向代理性能非常好好熱部署支持不支持系統(tǒng)壓力很小小穩(wěn)定性非常好好FastCGI好差安全性一般好靜態(tài)文件處理非常好一般內(nèi)存消耗非常小很大Rewrite規(guī)則非常好好相比于只是運(yùn)行在Windows環(huán)境下的IIS服務(wù)器,Nginx可以在多UNIX、Linux操作系統(tǒng)下運(yùn)行,具有很好的跨平臺(tái)特點(diǎn),并且IIS服務(wù)器具有很多的安全漏洞,很容易被不法分子利用,而Nginx對(duì)于用戶(hù)提交的請(qǐng)求,Nginx負(fù)載可以通過(guò)多種算法將請(qǐng)求提交到不同的Web服務(wù)器上運(yùn)行,通過(guò)不同的算法處理不同的請(qǐng)求以適用于不同的環(huán)境的負(fù)載分配;并且用戶(hù)的訪(fǎng)問(wèn)都是先到Nginx服務(wù)器再提交到相應(yīng)的Web上進(jìn)行處理,這便有效的防止了不法人員的惡意攻擊,同時(shí)由于所有的靜態(tài)文件都保存再內(nèi)部服務(wù)器上,進(jìn)而保證了網(wǎng)站信息的安全性。相比于Lighttpd,Nginx與其都采用異步處理方式,可以輕松提供大量連接,實(shí)現(xiàn)高并發(fā),并且都提供豐富的HTTP服務(wù)功能,但是Nginx在細(xì)節(jié)方面做的更好,提供了一些特色模塊,比如:secure_link、geoip等,并且Nginx在性能上也略?xún)?yōu)于Lighttpd,因?yàn)長(zhǎng)ighttpd啟動(dòng)線(xiàn)程時(shí)有加鎖競(jìng)爭(zhēng)的行為,而Nginx完全不會(huì)干預(yù)線(xiàn)程,而Lighttpd有動(dòng)態(tài)庫(kù)so,Nginx則是全靜態(tài)編譯,并且Nginx可以將多層負(fù)載均衡和代理服務(wù)緩存技術(shù)相集合,它可以快速的解析靜態(tài)文件,而對(duì)于動(dòng)態(tài)文件則提交到后臺(tái)進(jìn)行相應(yīng)的處理,有效的實(shí)現(xiàn)了網(wǎng)站的動(dòng)靜分離。綜上可知Nginx具有:高可靠:穩(wěn)定性master進(jìn)程管理調(diào)度請(qǐng)求分發(fā)到哪一個(gè)work進(jìn)程N(yùn)ginx熱部署:平滑升級(jí)、可以快速重載配置,在不停止業(yè)務(wù)的情況下實(shí)現(xiàn)軟件升級(jí)以及重載③高并發(fā):可以同時(shí)響應(yīng)更多的請(qǐng)求事件。如:epoll模型④響應(yīng)快:尤其在處理靜態(tài)文件上,響應(yīng)速度很快⑤低消耗:cpu和內(nèi)存1w個(gè)請(qǐng)求內(nèi)存2-3MB⑥分布式支持:反向代理七層負(fù)載均衡,新版本也支持四層負(fù)載均衡有效的用戶(hù)請(qǐng)求進(jìn)行分流因此Nginx服務(wù)器在Apache、IIS、Lighttpd中脫穎而出,截止目前,中國(guó)境內(nèi)的龍頭互聯(lián)網(wǎng)企業(yè)都在大大小小的許多場(chǎng)景中采用了Nginx,國(guó)內(nèi)使用Nginx的主機(jī)更是占據(jù)總體數(shù)量的1/4。3.3PHPPHP(HypertextPreprocessor)是由Rasmus·Lerdorf設(shè)計(jì)的一種通用開(kāi)源腳本語(yǔ)言,主要應(yīng)用于Web領(lǐng)域。PHP對(duì)比CGI而言,它可以通過(guò)對(duì)編譯后的代碼進(jìn)行加密與性能優(yōu)化達(dá)到運(yùn)行速度顯著提高的效果;由于PHP是比較容易上手的類(lèi)C語(yǔ)言,同樣也具有面向?qū)ο蟮南嚓P(guān)思想,雖然在國(guó)內(nèi)其流行程度并不是很高,但是其優(yōu)秀的特點(diǎn)卻不可忽視[6]。表3.3.1PHP、ASP、JSP、.NET性能對(duì)比類(lèi)別PHPASPJSP.NET跨平臺(tái)性所有Windows所有WindowsWeb服務(wù)器多IIS很多IIS執(zhí)行效率快快極快極快穩(wěn)定性高低中高開(kāi)發(fā)速度快快中快支持函數(shù)多少中多系統(tǒng)安全高低高高版本升級(jí)快慢慢中難易程度易易難中由表中數(shù)據(jù)可知PHP具有安全穩(wěn)定、開(kāi)發(fā)效率高,支持服務(wù)多的特點(diǎn),是集中網(wǎng)絡(luò)編程語(yǔ)言中占據(jù)優(yōu)勢(shì)最多的,是作為Web設(shè)計(jì)的首選。但是PHP在LNMP架構(gòu)中缺陷也比較突出,對(duì)于Apache與PHP集合使用:PHP是以模塊的形勢(shì)加載在Apache的內(nèi)核中,在解析動(dòng)態(tài)PHP代碼時(shí),其效率較高。而對(duì)于Nginx與PHP集合使用時(shí):Nginx與PHP相對(duì)而言都是獨(dú)立的,只不過(guò)在應(yīng)用過(guò)程中,解析動(dòng)態(tài)腳本時(shí),Nginx會(huì)自動(dòng)源代碼發(fā)送給PHP-FPM程序[7]。所以Nginx在處理靜態(tài)頁(yè)面時(shí),效率較高,但是對(duì)于動(dòng)態(tài)部分并不占優(yōu)勢(shì)。通過(guò)PHP的如圖運(yùn)行過(guò)程分析,客戶(hù)端先提交請(qǐng)求對(duì)應(yīng)PHP文件,此時(shí)服務(wù)器應(yīng)用程序接口(SAPI)掃描字典,進(jìn)行文件的解析,生成對(duì)應(yīng)的Opcode,最后執(zhí)行反饋給客戶(hù)端。圖3.3.1php工作流程圖由PHP工作流程可以看出,它在處理請(qǐng)求時(shí)是一個(gè)一部走到底的循環(huán),對(duì)于每一個(gè)請(qǐng)求他都需要進(jìn)行一次全新的編譯,雖然它的生命周期比較短,但是每一次執(zhí)行中不管腳本是否發(fā)生變化,也就是Zend引擎必須重新走一遍生命周期,這也就造成了PHP處理能力較差的原因。因此,如果可以緩存Opcode,便可以跳過(guò)字典掃描、解析、創(chuàng)建的過(guò)程。雖然PHP技術(shù)在國(guó)內(nèi)并不是很受重視,但在國(guó)外卻大相徑庭,對(duì)于這方面的問(wèn)題,目前已經(jīng)擁有了一些較成熟的處理方式。所以PHP雖然在計(jì)算上存在短板,但是將計(jì)算交給C語(yǔ)言處理,直接讀取結(jié)果,這樣就可以有效的彌補(bǔ)掉PHP處理動(dòng)態(tài)資源的弊端[8],在Web上充分發(fā)揮其優(yōu)勢(shì)。因此PHP仍然是Web開(kāi)發(fā)應(yīng)用中最佳的選擇,據(jù)統(tǒng)計(jì)全球5000萬(wàn)互聯(lián)網(wǎng)網(wǎng)站中,60%以上用使用PHP開(kāi)發(fā)[9],我們熟知的百度、淘寶、京東、Facebook都是其使用者。3.4MyCat讀寫(xiě)分離與主從備份技術(shù)隨著互聯(lián)網(wǎng)的快速發(fā)展,大數(shù)據(jù)時(shí)代的到來(lái),網(wǎng)站對(duì)于數(shù)據(jù)的操作變得越來(lái)越難以控制,傳統(tǒng)的關(guān)系數(shù)據(jù)庫(kù)已經(jīng)無(wú)法滿(mǎn)足快速查詢(xún)與插入數(shù)據(jù)的要求,并且龐大的操作量對(duì)于數(shù)據(jù)庫(kù)服務(wù)器而言也是一種巨大的挑戰(zhàn),這個(gè)時(shí)候NoSql通過(guò)降低數(shù)據(jù)的安全性能,在事務(wù)支持與數(shù)據(jù)的復(fù)雜查詢(xún)上進(jìn)行下調(diào)暫時(shí)解決這一危機(jī),但對(duì)于一些安全與事務(wù)要求高的情景,NoSql就顯得十分不足[10]。為了解決這一問(wèn)題,可以把對(duì)數(shù)據(jù)的讀寫(xiě)操作進(jìn)行分離,降低對(duì)數(shù)據(jù)庫(kù)服務(wù)器的負(fù)載,將相應(yīng)的操作分散到多個(gè)服務(wù)器上,這樣便可以在滿(mǎn)足大量數(shù)據(jù)存儲(chǔ)的基礎(chǔ)上實(shí)現(xiàn)數(shù)據(jù)的快速查詢(xún)。讀寫(xiě)分離指對(duì)于網(wǎng)站的數(shù)據(jù)庫(kù)分為兩部分,一部分進(jìn)行讀取操作,一部分用于寫(xiě)入操作,可以有效防止數(shù)據(jù)在一個(gè)服務(wù)器上進(jìn)行讀寫(xiě)操作出現(xiàn)的事務(wù)問(wèn)題[10]。在架構(gòu)上,將兩臺(tái)服務(wù)器安裝上Mysql數(shù)據(jù)庫(kù)后,通過(guò)主從配置讓兩臺(tái)服務(wù)器實(shí)現(xiàn)數(shù)據(jù)的同步,既實(shí)現(xiàn)了數(shù)據(jù)的備份安全,也減輕了數(shù)據(jù)交互的負(fù)載。圖3.4.1Mycat主從架構(gòu)圖所以,在架構(gòu)中加入讀寫(xiě)分離技術(shù)可以在Nginx進(jìn)行了負(fù)載均衡帶來(lái)高并發(fā)的同時(shí)實(shí)現(xiàn)在滿(mǎn)足大量數(shù)據(jù)存儲(chǔ)的基礎(chǔ)上實(shí)現(xiàn)數(shù)據(jù)的快速查詢(xún),并實(shí)現(xiàn)數(shù)據(jù)的同步備份,提升架構(gòu)的安全性,效率性。3.5prometheus數(shù)據(jù)監(jiān)控Prometheus是GoogleBrogMon的開(kāi)源實(shí)現(xiàn),由監(jiān)控報(bào)警系統(tǒng)與時(shí)序數(shù)據(jù)庫(kù)兩部分組成。它是繼Kubernetes后一款較受歡迎的監(jiān)控軟件,在2016年加入Linux旗下云原生計(jì)算基金會(huì)(CNCF)作為第二大開(kāi)源的項(xiàng)目,截至目前在GitHub上就有4萬(wàn)多使用者,并且快速的小版本更新使得Prometheus可以得到不斷的充實(shí)以滿(mǎn)足時(shí)代的需求。Prometheus通過(guò)Http協(xié)議周期性的抓取被監(jiān)控組件的狀態(tài)數(shù)據(jù),并在Prometheus服務(wù)器上實(shí)現(xiàn)聚合,同時(shí)還支持許多查詢(xún)函數(shù)實(shí)現(xiàn)有針對(duì)性的查詢(xún),當(dāng)觸發(fā)預(yù)警標(biāo)準(zhǔn)后便會(huì)發(fā)出警報(bào)。圖3.5.1Prometheos工作拓?fù)湎啾扔赑rometheus,雖然Zabbix也采用Agent+Server的架構(gòu),各個(gè)Agent都會(huì)采集數(shù)據(jù)傳到Server進(jìn)行匯總處理,并且支持自定義腳本執(zhí)行,但是Zabbix需要常用的關(guān)系數(shù)據(jù)庫(kù)的支持,而使用關(guān)系數(shù)據(jù)庫(kù)作為時(shí)許存儲(chǔ)數(shù)據(jù)庫(kù)使得Zabbix在監(jiān)控集群式有些不足,無(wú)法實(shí)現(xiàn)快速高效的監(jiān)控。對(duì)于Open-Falcon,一款由國(guó)內(nèi)小米公司開(kāi)發(fā)的監(jiān)控軟件,雖然支持單周期億次數(shù)據(jù)采集,并且可以支持單機(jī)200萬(wàn)Metric的上報(bào)、歸檔、存儲(chǔ),同時(shí)有許多組件支持;但是由于它的發(fā)布時(shí)間較短,不支持Tomcat、Apache等基礎(chǔ)服務(wù)的監(jiān)控,而且許多功能不完善使得它的使用面也無(wú)法像Prometheus這樣廣泛[11]。而對(duì)于Nagios,雖然在復(fù)雜的IT環(huán)境中表現(xiàn)出色,提供冗余監(jiān)控;但是它的事件控制功能十分有限,而且對(duì)于插件的可用性也比較差,使得它擴(kuò)容性也十分有限,并且由于沒(méi)有歷史數(shù)據(jù),使得在監(jiān)控鄰域?qū)τ诠收蠁?wèn)題的排查表現(xiàn)得也很不使用。表3.5.1各開(kāi)源監(jiān)控軟件性能對(duì)比類(lèi)別擴(kuò)展性高性能活躍度容器支持復(fù)雜度Zabbix高低中低中Nagios中中低低中Open-Falcon中高中中高Prometheus高高高高低綜上可知prometheus具有很好的可擴(kuò)展性于高性能,可以實(shí)現(xiàn)對(duì)多種數(shù)據(jù)的監(jiān)控。在本LNMP架構(gòu)中使用Prometheus作為監(jiān)控組件是最佳的選擇。3.6Hadoop分布式環(huán)境Hadoop是由Apache基金會(huì)開(kāi)發(fā)的分布式文件系統(tǒng),可以實(shí)現(xiàn)對(duì)大量數(shù)據(jù)的分布式處理,并且具有很高的可靠性,它可以維持多個(gè)工作數(shù)據(jù)副本,確保處理的無(wú)誤性;采用MapReduce作為主要組件進(jìn)行快速的分工合作,可以將大量數(shù)據(jù)分發(fā)到各個(gè)節(jié)點(diǎn)進(jìn)行計(jì)算處理后進(jìn)行匯總,還具有很強(qiáng)的可擴(kuò)展性。相比于傳統(tǒng)的關(guān)系數(shù)據(jù)庫(kù)在云計(jì)算方面,Hadoop采用MPP架構(gòu),使得可以跨多個(gè)服務(wù)器自動(dòng)分區(qū)進(jìn)行并行處理;并且以HDFS作為存儲(chǔ)系統(tǒng),可以向復(fù)制文件一樣簡(jiǎn)單,而且支持任何格式;在速度方面,Hadoop具有強(qiáng)大的內(nèi)存工具可以實(shí)現(xiàn)數(shù)據(jù)的快速處理。由于Hadoop可以實(shí)現(xiàn)對(duì)大數(shù)據(jù)的快速處理,由Hadoop數(shù)據(jù)處理圖可知其內(nèi)部只有Map與Reduce過(guò)程,系統(tǒng)管理員只需要通過(guò)簡(jiǎn)單的外部軟件定義基本的數(shù)據(jù)處理邏輯便可以實(shí)現(xiàn),在每一臺(tái)服務(wù)器上進(jìn)行快速的計(jì)算。圖3.5.1Hadoop數(shù)據(jù)處理過(guò)程當(dāng)涉及到大數(shù)據(jù),Hadoop允許使用簡(jiǎn)單的編程模型在大量計(jì)算機(jī)集群上對(duì)大型數(shù)據(jù)集進(jìn)行分布式處理。本架構(gòu)構(gòu)建了Hadoop的分布式環(huán)境,可以實(shí)現(xiàn)網(wǎng)站、系統(tǒng)日志的匯總存儲(chǔ)與Hbase中,并且提供友好的瀏覽器界面,為系統(tǒng)管理、戰(zhàn)略部署提供必要的數(shù)據(jù)支撐。4環(huán)境架構(gòu)拓?fù)浞治鐾ㄟ^(guò)對(duì)各個(gè)關(guān)鍵技術(shù)的分析,本架構(gòu)使用Linux、Nginx、Mysql、PHP搭建LNMP框架,并引入負(fù)載均衡、雙機(jī)熱備份、Mycat讀寫(xiě)分離、數(shù)據(jù)主從、Prometheus、Hadoop技術(shù)已達(dá)到架構(gòu)的高可用性、高穩(wěn)定性、高擴(kuò)展性、高安全性。主要部署如圖:圖4.1LNMP環(huán)境架構(gòu)拓?fù)湄?fù)載均衡與雙機(jī)熱備份:當(dāng)用戶(hù)訪(fǎng)問(wèn)網(wǎng)站,請(qǐng)求會(huì)首先到達(dá)Nginx服務(wù)器,在服務(wù)器內(nèi)部通過(guò)hash算法后,將用戶(hù)轉(zhuǎn)到對(duì)應(yīng)的Web服務(wù)器;并且兩臺(tái)nginx服務(wù)器進(jìn)行了雙機(jī)熱備份,如果有一臺(tái)服務(wù)器down掉,另一臺(tái)備份的Nginx回立刻替代它,將用戶(hù)的請(qǐng)求通過(guò)hash轉(zhuǎn)發(fā)到對(duì)應(yīng)的Web服務(wù)器上。Web服務(wù)器的負(fù)載均衡: 本架構(gòu)在兩臺(tái)Web服務(wù)器上都通過(guò)Keepalived實(shí)現(xiàn)了兩者的雙機(jī)熱備份,用戶(hù)請(qǐng)求在通過(guò)負(fù)載均衡后到達(dá)相應(yīng)的Web服務(wù)器上進(jìn)行后續(xù)操作,但當(dāng)其中一臺(tái)服務(wù)器down掉后,另一臺(tái)會(huì)立刻接管當(dāng)前用戶(hù)的請(qǐng)求,讓用戶(hù)繼續(xù)后續(xù)的操作。Mycat讀寫(xiě)分離: 從Web服務(wù)器發(fā)出的數(shù)據(jù)請(qǐng)求會(huì)到達(dá)Mycat服務(wù)器,Mycat服務(wù)器會(huì)根據(jù)該數(shù)據(jù)是讀操作還是寫(xiě)操作下發(fā)到對(duì)應(yīng)的Mysql數(shù)據(jù)庫(kù)服務(wù)器上。Mysql主從: 在兩臺(tái)Mysql數(shù)據(jù)庫(kù)上實(shí)現(xiàn)主從關(guān)系,是數(shù)據(jù)庫(kù)數(shù)據(jù)會(huì)保持一致,并且以此劃分?jǐn)?shù)據(jù)庫(kù)的角色,Master數(shù)據(jù)庫(kù)只負(fù)責(zé)寫(xiě)入數(shù)據(jù)操作,Slave數(shù)據(jù)庫(kù)只實(shí)現(xiàn)數(shù)據(jù)的讀取操作。Prometheus數(shù)據(jù)監(jiān)控: 本架構(gòu)在所有的服務(wù)器上都安裝了對(duì)應(yīng)的監(jiān)控模塊,通過(guò)普羅米修斯可以實(shí)時(shí)看到各個(gè)模塊傳回的數(shù)據(jù),并且可以通過(guò)瀏覽器界面實(shí)現(xiàn)對(duì)單個(gè)服務(wù)器某一數(shù)據(jù)的實(shí)時(shí)查詢(xún)與作圖分析。Hadoop數(shù)據(jù)存儲(chǔ): 在架構(gòu)上引入了Hadoop分布式環(huán)境,用戶(hù)可以在環(huán)境中配置相應(yīng)的系統(tǒng)任務(wù),將對(duì)應(yīng)各個(gè)服務(wù)器的數(shù)據(jù)信息匯總存儲(chǔ)到Hadoop集群中,并且可以在外部進(jìn)行處理邏輯的書(shū)寫(xiě),引入到各個(gè)分布式節(jié)點(diǎn)上實(shí)現(xiàn)對(duì)數(shù)據(jù)的快速處理;同時(shí)管理員可以在瀏覽器界面實(shí)現(xiàn)對(duì)集群存儲(chǔ)數(shù)據(jù)的簡(jiǎn)單管理。5主要配置實(shí)現(xiàn)5.1負(fù)載均衡配置實(shí)現(xiàn)1、修改Nginx的nginx.conf文件圖5.1.1Nginx配置2、Web01與Web02重新定義Nginx日志格式圖5.1.2Nginx的http服務(wù)配置5.2讀寫(xiě)分離配置主從同步配置1、在主服務(wù)器上授權(quán)Slave圖5.2.1主服務(wù)器授權(quán) 2、在副服務(wù)器上開(kāi)啟Slave圖5.2.2從服務(wù)器開(kāi)啟Slave讀寫(xiě)分離在Mycat配置文件<schema></schema>標(biāo)簽中添加dataNode節(jié)點(diǎn)圖5.2.3Mycat的Node配置在dataNode節(jié)點(diǎn)中,指定database真實(shí)的數(shù)據(jù)庫(kù)圖5.2.3Mycat數(shù)據(jù)庫(kù)配置設(shè)置writeHost與readHost圖5.2.4Mycat讀寫(xiě)分離配置5.3Hadoop集群配置Java環(huán)境指定圖5.3.1配置Java環(huán)境支持指定瀏覽器訪(fǎng)問(wèn)url與數(shù)據(jù)物理暫存地址圖5.3.2配置Hadoop瀏覽器管理屬性修改Hdfs配置文件指定瀏覽器url與副本數(shù)量圖5.3.3配置hdfs瀏覽器管理屬性指定MapReduce運(yùn)行框架圖5.3.4指定yarn框架指定yarn運(yùn)行主節(jié)點(diǎn)圖5.3.5指定Hadoop主節(jié)點(diǎn)6測(cè)試6.1網(wǎng)站正常運(yùn)行測(cè)試圖6.1網(wǎng)站正常運(yùn)行測(cè)試6.2、負(fù)載均衡測(cè)試當(dāng)多個(gè)流量到來(lái)時(shí),Nginx負(fù)載均衡器會(huì)將其平均分配到相應(yīng)的Web服務(wù)器進(jìn)行處理圖6.2.1流量轉(zhuǎn)到Web-1測(cè)試圖6.2.2流量轉(zhuǎn)到Web-2測(cè)試6.3、雙機(jī)熱備份測(cè)試當(dāng)負(fù)載均衡(LB-1)宕機(jī),Lb-2可以立即切換工作測(cè)試(1)在正常工作時(shí)LB-1會(huì)分配到8的虛擬地址,圖6.3.1主服務(wù)器虛擬IP測(cè)試圖6.3.1從服務(wù)器虛擬IP測(cè)試(2)當(dāng)LB-1宕機(jī),LB-2會(huì)立即搶占IP,并讓網(wǎng)站正常運(yùn)行圖6.3.3虛擬IP搶占測(cè)試圖6.3.4宕機(jī)后網(wǎng)站正常運(yùn)行測(cè)試6.4、Mycat讀寫(xiě)分測(cè)試(1)mycat是否連接讀寫(xiě)服務(wù)器測(cè)試圖6.4.1Mycat連接主從測(cè)試(2)Mycat寫(xiě)入數(shù)據(jù)在Master寫(xiě)入數(shù)據(jù)庫(kù)寫(xiě)入數(shù)據(jù)圖6.4.2Mycat主數(shù)據(jù)庫(kù)寫(xiě)入在Slave讀取數(shù)據(jù)庫(kù)寫(xiě)圖6.4.3Mycat從數(shù)據(jù)庫(kù)寫(xiě)入 Master上查詢(xún):只有Master寫(xiě)入數(shù)據(jù)圖6.4.4Mycat主數(shù)據(jù)庫(kù)寫(xiě)入查看Slave上查詢(xún):有兩者寫(xiě)入的數(shù)據(jù)圖6.4.5Mycat從數(shù)據(jù)庫(kù)查看由上圖可知所有數(shù)據(jù)都是通過(guò)Mycat服務(wù)器去寫(xiě)入,對(duì)于Master與Slave存入的數(shù)據(jù),只有Slave可以查到所有,而Slave存儲(chǔ)數(shù)據(jù)無(wú)法同步到Master,說(shuō)明Master只提供寫(xiě)數(shù)據(jù)服務(wù),Slave只提供讀數(shù)據(jù)服務(wù),也就是Mycat實(shí)現(xiàn)了數(shù)據(jù)庫(kù)的讀寫(xiě)分離。6..5、Hadoop環(huán)境測(cè)試(1)開(kāi)啟各節(jié)點(diǎn),測(cè)試瀏覽器端是否正常接入圖6.5.1Hadoop成功部署測(cè)試(2)測(cè)試將mycat服務(wù)器日志數(shù)據(jù)寫(xiě)入hdfs圖6.5.2日志數(shù)據(jù)寫(xiě)入hdfs測(cè)試6.6、Prometheus監(jiān)控測(cè)試以監(jiān)控Mycat服務(wù)器一分鐘負(fù)載運(yùn)行狀況為例:在終端添加需要監(jiān)控的服務(wù)器,設(shè)置掃描參數(shù)便可以開(kāi)啟周期性狀態(tài)數(shù)據(jù)掃描圖6.6.1Mycat一分鐘負(fù)載測(cè)試7結(jié)論及優(yōu)勢(shì)本文通過(guò)對(duì)當(dāng)今LNMP在國(guó)內(nèi)外發(fā)展進(jìn)行研究的基礎(chǔ)上,分別分析了各個(gè)關(guān)鍵技術(shù)的優(yōu)勢(shì)及相關(guān)問(wèn)題的解決方案,最后采取比較優(yōu)勢(shì)化的Nginx、PHP、Hadoop進(jìn)行框架搭建;并引入負(fù)載均衡、雙機(jī)熱備份、Mycat讀寫(xiě)分離、數(shù)據(jù)主從、Prometheus、Hadoop技術(shù)已達(dá)到架構(gòu)的高可用性、高穩(wěn)定性、高擴(kuò)展性、高安全性。以下對(duì)從構(gòu)建成本與維護(hù)、安全穩(wěn)定性、可擴(kuò)展性、可發(fā)展性方面進(jìn)行剖析說(shuō)明本架構(gòu)的優(yōu)勢(shì)所在。7.1在成本與維護(hù)上在成本與維護(hù)上,本架構(gòu)都采用開(kāi)源免費(fèi)且都是輕量級(jí)的軟件,可以滿(mǎn)足許多新興企業(yè)的需求,降低網(wǎng)站架構(gòu)成本;另外,所用軟件服務(wù)都是發(fā)行時(shí)間長(zhǎng),使用涉及鄰域廣泛,用戶(hù)使用量大,官方穩(wěn)定維護(hù)更新,對(duì)于運(yùn)行階段的各種問(wèn)題都可以在網(wǎng)上找到快速解決方案,可以有效的降低網(wǎng)站的維護(hù)成本。并且,這些輕量級(jí)的應(yīng)用都具有上手容易,操作性強(qiáng)的特點(diǎn),可以在人力資源上做到精簡(jiǎn)。7.2在安全與穩(wěn)定上在安全與穩(wěn)定性上,架構(gòu)中對(duì)核心服務(wù)器進(jìn)行了雙機(jī)熱備份,可以有效防止意外事故造成的業(yè)務(wù)中斷問(wèn)題,并且使用負(fù)載均衡技術(shù)將業(yè)務(wù)流量進(jìn)行均衡分配,通過(guò)IPHash算法實(shí)現(xiàn)用戶(hù)session的不中斷,通過(guò)Mycat讀寫(xiě)分離技術(shù)與數(shù)據(jù)庫(kù)主從技術(shù)實(shí)現(xiàn)業(yè)務(wù)的高效處理能力,提高數(shù)據(jù)的安全指數(shù)。7.3可擴(kuò)展性上在可擴(kuò)展性上,架構(gòu)中主要體現(xiàn)在負(fù)載均衡、Prometheus監(jiān)控、Hadoop集群的拓展上。對(duì)于服務(wù)器,只需要將需要添加的Web服務(wù)器IP配置到Nginx服務(wù)器中即可實(shí)現(xiàn)拓展,并且可以平滑升級(jí);在監(jiān)控方面,只需要將需要拓展的監(jiān)控組件加入被監(jiān)控服務(wù)器運(yùn)行,在Prometheus服務(wù)器配置監(jiān)聽(tīng)端口即可以開(kāi)始服務(wù)器定向數(shù)據(jù)的實(shí)時(shí)監(jiān)控;在Hadoop集群上,Hadoop本身就支持節(jié)點(diǎn)的擴(kuò)展,只要將節(jié)點(diǎn)IP引入主節(jié)點(diǎn),便可以實(shí)現(xiàn)集群的快速擴(kuò)展而不會(huì)影響到其他節(jié)點(diǎn)。7.

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論