直接進入正題。

一.異步處理

場景:發(fā)送手機驗證碼,郵件

傳統(tǒng)古老處理方式如下圖

平面設(shè)計培訓(xùn),網(wǎng)頁設(shè)計培訓(xùn),美工培訓(xùn),游戲開發(fā),動畫培訓(xùn)

這個流程,全部在主線程完成,注冊-》入庫-》發(fā)送郵件-》發(fā)送短信,由于都在主線程,所以要等待每一步完成才能繼續(xù)執(zhí)行。由于每一步的操作時間響應(yīng)時間不固定,所以主線程的請求耗時可能會非常長,如果請求過多,會導(dǎo)致IIS站點巨慢,排隊請求,甚至宕機,嚴重影響用戶體驗。

現(xiàn)在大多數(shù)的處理方式如下圖

平面設(shè)計培訓(xùn),網(wǎng)頁設(shè)計培訓(xùn),美工培訓(xùn),游戲開發(fā),動畫培訓(xùn)

這個做法是主線程只做耗時非常短的入庫操作,發(fā)送郵件和發(fā)送短信,會開啟2個異步線程,扔進去并行執(zhí)行,主線程不管,繼續(xù)執(zhí)行后續(xù)的操作,這種處理方式要遠遠好過第一種處理方式,極大的增強了請求響應(yīng)速度,用戶體驗良好。缺點是,由于異步線程里的操作都是很耗時間的操作,一個請求要開啟2個線程,而一臺標準配置的ECS服務(wù)器支撐的并發(fā)線程數(shù)大概在800左右,假設(shè)一個線程在10秒做完,這個單個服務(wù)器最多能支持400個請求的并發(fā),后面的就要排隊。出現(xiàn)這種情況,就要考慮增加服務(wù)器做負載,尷尬的增加成本。

延伸閱讀

學(xué)習(xí)是年輕人改變自己的最好方式-Java培訓(xùn),做最負責(zé)任的教育,學(xué)習(xí)改變命運,軟件學(xué)習(xí),再就業(yè),大學(xué)生如何就業(yè),幫大學(xué)生找到好工作,lphotoshop培訓(xùn),電腦培訓(xùn),電腦維修培訓(xùn),移動軟件開發(fā)培訓(xùn),網(wǎng)站設(shè)計培訓(xùn),網(wǎng)站建設(shè)培訓(xùn)學(xué)習(xí)是年輕人改變自己的最好方式