在移動(dòng)互聯(lián)時(shí)代,越來越多的人對(duì)于手機(jī)端的商機(jī)越來越重視,同時(shí)也帶火了對(duì)于APP開發(fā)應(yīng)用的龐大需求市場(chǎng)。面對(duì)魚龍混雜的眾多APP開發(fā)制作企業(yè),博納網(wǎng)絡(luò)認(rèn)為我們?cè)陧?xiàng)目制作前期,應(yīng)該對(duì)APP制作的原理以及流程有所了解,這樣更利于我們的客戶項(xiàng)目在后期高效運(yùn)行管理中帶來幫助。有鑒于此,深圳APP開發(fā)公司,博納網(wǎng)絡(luò)專門就APP開發(fā)的流程以及實(shí)際操作技巧進(jìn)行分享,在前面的文章中我們主要講了如何處理https等相關(guān)知識(shí),本文重點(diǎn)分享Nginx下的性能統(tǒng)計(jì)與如何實(shí)現(xiàn)均負(fù)載。
APP開發(fā)之性能統(tǒng)計(jì)
編澤Nginx源碼的時(shí)候帶上參數(shù)“--wit h-htt p_st ub_st atu sjuodule”,就耍裝了Nginx的統(tǒng)汁模塊,這個(gè)模塊能夠獲IRNginx自上次啟動(dòng)以來的工作狀態(tài)。
在虛擬王機(jī)的配置文件中添加以下的代碼,啟動(dòng)統(tǒng)計(jì)功能。
location /nginx_status {
stub_status on;
access_log off,
}
重啟Nginx使配置文件生效,就能在瀏覽器中輸入“l(fā)ittp://域名/ngiux_status”了解Nginx的狀態(tài)會(huì)出現(xiàn)類似下方的信息。
Active connections:1
server accepts handled requests
653 653 685
F.eading:l Writing:l Waiting:.
上面每項(xiàng)的含義如下。
·Actlve connectlons,當(dāng)前Nginx正處理的活動(dòng)連接數(shù)。
·server accepts handled requests:共處理了653次鏈接,共處理了653次握手,共處理了685次請(qǐng)求。
·Reading: iVginx讀取到客戶端的Header信息數(shù)。
·Writing: iVginx返回給客戶端的Header信息數(shù)。
·Waiting:開啟keep-alive的情況下,這個(gè)值等于ActiveReading+ Writing),是Nginx已經(jīng)處理完成,正在等候下次請(qǐng)求指令的駐留連接。
所以當(dāng)App的請(qǐng)求被快速處理完畢的情況下,Waiting數(shù)比較多是正常的。如果reading+writing數(shù)目較多,則說明App后臺(tái)并發(fā)訪問量大,Ngiux正在處理過程中。
APP開發(fā)之實(shí)現(xiàn)負(fù)載均衡的方案
應(yīng)用服務(wù)器上處理業(yè)務(wù)邏輯,由于應(yīng)用服務(wù)器地位上的重要性,為了保證應(yīng)用服務(wù)器高可用,可使用Nginx負(fù)載均衡和健康檢查特性,
一個(gè)初級(jí)的方案如圖5-7所示。
APP開發(fā)均衡負(fù)載流程示意圖5-7
在上面的方案中,負(fù)載均衡服務(wù)器部署了Nginx.其綁定了兩個(gè)ip,外網(wǎng)的ip和內(nèi)網(wǎng)ip。用DNS服務(wù)把域名綁定到外網(wǎng)ip.通過內(nèi)網(wǎng)ip和應(yīng)用服務(wù)集群內(nèi)的服務(wù)器通信。
應(yīng)用集群內(nèi)的機(jī)器不能直接訪問網(wǎng)絡(luò),所有數(shù)據(jù)的進(jìn)出都要經(jīng)過負(fù)載均衡服務(wù)器
這個(gè)方案有以下兩個(gè)好處。
·保證了應(yīng)用服務(wù)的高可用,即使有臺(tái)應(yīng)用服務(wù)器宕機(jī),其他服務(wù)器也會(huì)繼續(xù)工作
·應(yīng)用服務(wù)器不直接連接Internet,減少了被入侵的可能性。
負(fù)載均衡服務(wù)器上面部署了Nginx,使用其負(fù)載均衡和健康檢查特性。這個(gè)方案還有個(gè)問題:負(fù)載均衡服務(wù)器只有臺(tái),如果負(fù)載均衡服務(wù)器宕機(jī),整個(gè)服務(wù)就不可用,現(xiàn)在業(yè)界普遍解決Nginx高可用的方法是Nginx+Keepalived如果這臺(tái)Nginx服,務(wù)器宕機(jī).Keepalived就把這個(gè)ip漂移到另外部署兩臺(tái)Ngiux服務(wù)器,通過Keepalived把外網(wǎng)ip綁定到一臺(tái)Nginx服務(wù)器上使服務(wù)不受影響。
創(chuàng)業(yè)團(tuán)隊(duì)中的運(yùn)維大多數(shù)是由開發(fā)人員兼職,非專業(yè)運(yùn)維人員實(shí)現(xiàn)Nginx_Eeepalived方案,需要挺高的學(xué)習(xí)成本和冒一定的風(fēng)險(xiǎn),而且這種方案中有一臺(tái)服務(wù)器平時(shí)是處于稠置狀態(tài),資源利用率不麗。深圳APP開發(fā)公司一向倡導(dǎo)創(chuàng)業(yè)團(tuán)隊(duì)的架構(gòu)原則是“盡量使用成熟可靠的云服務(wù)和開源軟件,自身只專注于業(yè)務(wù)邏輯”。現(xiàn)在云服務(wù)器提供了負(fù)載均衡SLB的服務(wù)。使用云服務(wù)器上負(fù)載均衡SLB的服務(wù)有以下兩個(gè)好處。
·云服務(wù)器上有專業(yè)的運(yùn)維團(tuán)隊(duì)保證負(fù)載均衡SLB的高可用。
·負(fù)載均衡SLB的服務(wù),比自己購(gòu)買服務(wù)器搭建負(fù)載均衡服務(wù)便宜多了(甚至有免費(fèi)的服務(wù),現(xiàn)在UCloud的負(fù)載均衡就是免費(fèi)的)花錢購(gòu)買可靠成熟的服務(wù),不但節(jié)省資源,還能提高開發(fā)的效率,把自身的精力專注于最核心的業(yè)務(wù)上。本文關(guān)于APP制作方面的經(jīng)驗(yàn)文章就分享到這里。如果您有其他需要幫助,聯(lián)系我們?cè)诰€客服。深圳APP開發(fā)-博納網(wǎng)絡(luò)編輯整理。