直接進入正題。
一.異步處理
場景:發(fā)送手機驗證碼,郵件
傳統(tǒng)古老處理方式如下圖
這個流程,全部在主線程完成,注冊-》入庫-》發(fā)送郵件-》發(fā)送短信,由于都在主線程,所以要等待每一步完成才能繼續(xù)執(zhí)行。由于每一步的操作時間響應(yīng)時間不固定,所以主線程的請求耗時可能會非常長,如果請求過多,會導(dǎo)致IIS站點巨慢,排隊請求,甚至宕機,嚴(yán)重影響用戶體驗。
現(xiàn)在大多數(shù)的處理方式如下圖
這個做法是主線程只做耗時非常短的入庫操作,發(fā)送郵件和發(fā)送短信,會開啟2個異步線程,扔進去并行執(zhí)行,主線程不管,繼續(xù)執(zhí)行后續(xù)的操作,這種處理方式要遠(yuǎn)遠(yuǎn)好過第一種處理方式,極大的增強了請求響應(yīng)速度,用戶體驗良好。缺點是,由于異步線程里的操作都是很耗時間的操作,一個請求要開啟2個線程,而一臺標(biāo)準(zhǔn)配置的ECS服務(wù)器支撐的并發(fā)線程數(shù)大概在800左右,假設(shè)一個線程在10秒做完,這個單個服務(wù)器最多能支持400個請求的并發(fā),后面的就要排隊。出現(xiàn)這種情況,就要考慮增加服務(wù)器做負(fù)載,尷尬的增加成本。
延伸閱讀
- ssh框架 2016-09-30
- 阿里移動安全 [無線安全]玩轉(zhuǎn)無線電——不安全的藍(lán)牙鎖 2017-07-26
- 消息隊列NetMQ 原理分析4-Socket、Session、Option和Pipe 2024-03-26
- Selective Search for Object Recognition 論文筆記【圖片目標(biāo)分割】 2017-07-26
- 詞向量-LRWE模型-更好地識別反義詞同義詞 2017-07-26
- 從棧不平衡問題 理解 calling convention 2017-07-26
- php imagemagick 處理 圖片剪切、壓縮、合并、插入文本、背景色透明 2017-07-26
- Swift實現(xiàn)JSON轉(zhuǎn)Model - HandyJSON使用講解 2017-07-26
- 阿里移動安全 Android端惡意鎖屏勒索應(yīng)用分析 2017-07-26
- 集合結(jié)合數(shù)據(jù)結(jié)構(gòu)來看看(二) 2017-07-26