應(yīng)用服務(wù)器就是處理網(wǎng)站建設(shè)業(yè)務(wù)的服務(wù)器,網(wǎng)站的業(yè)務(wù)代碼都部署在這里,是青島網(wǎng)站開(kāi)發(fā)最復(fù)雜,變化最多的地方,優(yōu)化手段主要有緩存\集群\異步等.
4.3.2 異步操作使用消息隊(duì)列將調(diào)用異步化,可改善網(wǎng)站的擴(kuò)展性。事實(shí)上,使用消息隊(duì)列還可改善網(wǎng)站系統(tǒng)的性能。不使用消息隊(duì)列服務(wù)器在不使用消息隊(duì)列的情況下,用戶的請(qǐng)求數(shù)據(jù)直接寫入數(shù)據(jù)庫(kù),在高并發(fā)的情況下,會(huì)對(duì)數(shù)據(jù)庫(kù)造成巨大的壓力,同時(shí)也使得響應(yīng)延遲加劇。在使用消息隊(duì)列后,用戶請(qǐng)求的數(shù)據(jù)發(fā)送給消息隊(duì)列后立即返回,再由消息隊(duì)列的消費(fèi)者進(jìn)程(通常情況下,該進(jìn)程通常獨(dú)立部署在專門的服務(wù)器集群上)從消息隊(duì)列中獲取數(shù)據(jù),異步寫入數(shù)據(jù)庫(kù)。由于消息隊(duì)列服務(wù)器處理速度遠(yuǎn)快于數(shù)據(jù)庫(kù)(消息隊(duì)列服務(wù)器也比數(shù)據(jù)庫(kù)具有更好的伸縮性),因此用戶的響應(yīng)延遲可得到有效改善。消息隊(duì)列具有很好的削峰作用——即通過(guò)異步處理,將短時(shí)間高并發(fā)產(chǎn)生的事務(wù)消息存儲(chǔ)在消息隊(duì)列中,從而削平高峰期的并發(fā)事務(wù)。在電子商務(wù)網(wǎng)站促銷活動(dòng)中,合理使用消息隊(duì)列,可有效抵御促銷活動(dòng)剛開(kāi)始大量涌入的訂單對(duì)系統(tǒng)造成的沖擊。
使用消息隊(duì)列消除并發(fā)訪問(wèn)高峰需要注意的是,由于數(shù)據(jù)寫入消息隊(duì)列后立即返回給用戶,數(shù)據(jù)在后續(xù)的業(yè)務(wù)校驗(yàn)、寫數(shù)據(jù)庫(kù)等操作可能失敗,因此在使用消息隊(duì)列進(jìn)行業(yè)務(wù)異步處理后,需要適當(dāng)修改業(yè)務(wù)流程進(jìn)行配合,如訂單提交后,訂單數(shù)據(jù)寫入消息隊(duì)列,不能立即返回用戶訂單提交成功,需要在消息隊(duì)列的訂單消費(fèi)者進(jìn)程真正處理完該訂單,甚至商品出庫(kù)后,再通過(guò)電子郵件或SMS消息通知用戶訂單成功,以免交易糾紛。
4.3.3 使用集群在網(wǎng)站高并發(fā)訪問(wèn)的場(chǎng)景下,使用負(fù)載均衡技術(shù)為一個(gè)應(yīng)用構(gòu)建一個(gè)由多臺(tái)服務(wù)器組成的服務(wù)器集群,將并發(fā)訪問(wèn)請(qǐng)求分發(fā)到多臺(tái)服務(wù)器上處理,避免單一服務(wù)器因負(fù)載壓力過(guò)大而響應(yīng)緩慢,使用戶請(qǐng)求具有更好的響應(yīng)延遲特性。
利用負(fù)載均衡技術(shù)改善性能三臺(tái)Web服務(wù)器共同處理來(lái)自用戶瀏覽器的訪問(wèn)請(qǐng)求,這樣每臺(tái)Web服務(wù)器需要處理的http請(qǐng)求只有總并發(fā)請(qǐng)求數(shù)的三分之一,根據(jù)性能測(cè)試曲線,使服務(wù)器的并發(fā)請(qǐng)求數(shù)目控制在最佳運(yùn)行區(qū)間,獲得最佳的訪問(wèn)請(qǐng)求延遲。
Copyright All Rights GreatGoal Design co.,ltd. 魯ICP備16002128號(hào)-3