????隨著最近我們的應(yīng)用在海外的訪問量庐橙,很多海外用戶反應(yīng)整體的體檢比較差执隧,每次電話的撥打都要消耗很長時間炫狱,帶來了很多用戶反饋。
? ? 綜合自己對網(wǎng)絡(luò)和架構(gòu)近幾年的了解簇爆,自己總結(jié)了幾個經(jīng)驗:
? ? 1):節(jié)點(diǎn)的訪問DNS優(yōu)化
? ? 2):不同節(jié)點(diǎn)的內(nèi)容緩存
? ? 3):內(nèi)容壓縮
? ? 4):應(yīng)用程序的性能優(yōu)化
接下來對不同的方案進(jìn)行詳細(xì)說明一下:
?1):節(jié)點(diǎn)的訪問DNS優(yōu)化
? ? ? ?類似于萬網(wǎng)的DNS解析一般分為癞松,中國移動、中國電信入蛆、中國聯(lián)通和百度以及境外等配置响蓉,可以對不通的網(wǎng)絡(luò)類型進(jìn)行單獨(dú)配置解析服務(wù)器,如果要對境外進(jìn)行細(xì)分的話哨毁,一般提供了VIP服務(wù)枫甲,可以對境外的不同州的不同地區(qū)進(jìn)行配置,此步能夠在DNS的解析上可以節(jié)省一段時間。
? ? 一般一些企業(yè)可能還會購買godaddy的國際域名想幻,godaddy不提供海外的細(xì)分解析粱栖,不過godaddy上可以配置到阿里云的dns,然后采用阿里云的配置進(jìn)行細(xì)分脏毯,這點(diǎn)阿里云做的還是很好的闹究。
2):不通節(jié)點(diǎn)的內(nèi)容緩存
? ? 不通節(jié)點(diǎn)的應(yīng)用服務(wù)器分別部署自己的內(nèi)容緩存,將常用的用戶數(shù)據(jù)緩存到節(jié)點(diǎn)服務(wù)器食店。對于很多有管理系統(tǒng)的渣淤,可以采用Redis的主從模式,在不通的節(jié)點(diǎn)部署redis的從節(jié)點(diǎn)吉嫩,負(fù)責(zé)從主節(jié)點(diǎn)同步數(shù)據(jù)到本地砂代。管理系統(tǒng)對用戶數(shù)據(jù)的修改通過修改redis的主節(jié)點(diǎn),然后同步到各個節(jié)點(diǎn)進(jìn)行同步率挣,然后對從節(jié)點(diǎn)的寫功能也要打開刻伊,以便可以對不同區(qū)域的節(jié)點(diǎn)做獨(dú)立數(shù)據(jù)而不影響主節(jié)點(diǎn)。
3):內(nèi)容壓縮
? ? http請求和響應(yīng)的內(nèi)容不易太長椒功,由于網(wǎng)絡(luò)上對單個包是有長度限制的捶箱,然后超過之后會進(jìn)行拆包,必然會帶來性能的消耗动漾,所以有必要對內(nèi)容進(jìn)行壓縮丁屎,壓縮的訪問有很多中。body部分采用gzip等壓縮
?4):應(yīng)用程序的性能優(yōu)化
? ? ? 對訪問量比較多的數(shù)據(jù)以及不經(jīng)常改動的旱眯,進(jìn)行內(nèi)容緩存晨川,對常見的系統(tǒng)配置進(jìn)行一級緩存(靜態(tài)Map等),其余可以Redis删豺、Memcached等緩存方式共虑。
? ? 確定系統(tǒng)的是屬于消耗內(nèi)存型還是消耗CPU型還是屬于IO型,將消耗cpu部分進(jìn)行拆分呀页,使用cpu比較好的機(jī)器妈拌,消耗內(nèi)存型的系統(tǒng)使用內(nèi)存配置比較大的機(jī)器進(jìn)行部署,將IO密集型的采用SSD硬盤蓬蝶,或者使用Node等適合io密集型的語言進(jìn)行開發(fā)
? ? mysql等這種關(guān)系型數(shù)據(jù)尘分,對于一般小公司沒有數(shù)據(jù)庫運(yùn)維的人來說,大表就不要使用分表和分庫了丸氛,太麻煩培愁,但是主從讀寫分離是一定需要做的,對于讀寫分離缓窜,一般應(yīng)用系統(tǒng)決定使用哪臺機(jī)器進(jìn)行讀寫也是比較麻煩的定续,可以采用mysql proxy或者360提供的數(shù)據(jù)庫代理工具谍咆,可以很大程度上降低系統(tǒng)的復(fù)雜性,系統(tǒng)架構(gòu)上也要該很多東西香罐,采用mongo等nosql數(shù)據(jù)庫卧波。
? ? 異步處理的盡可能的使用消息隊列
? ? 當(dāng)然程序方面的優(yōu)化還有很多
????總結(jié)以上幾點(diǎn)时肿,做起來還是比較容易的庇茫,但是我們失敗了,阿里云的海外節(jié)點(diǎn)到國內(nèi)的節(jié)點(diǎn)的網(wǎng)絡(luò)不穩(wěn)定螃成,經(jīng)常丟包導(dǎo)致很多到國內(nèi)的請求都是失敗的旦签,痛苦不堪啊。
? ? 最后使用穩(wěn)定的具有海外和國內(nèi)的專線服務(wù)的云服務(wù)廠商寸宏, 增加代理服務(wù)宁炫,代理到國內(nèi)服務(wù)器。國內(nèi)服務(wù)器做跨機(jī)房部署氮凝,避免單機(jī)房故障羔巢。
? ??