真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

聊聊mq的使用場(chǎng)景-創(chuàng)新互聯(lián)

mq的作用

  1. 通過異步方式對(duì)系統(tǒng)解耦
  2. 增加系統(tǒng)的并發(fā)處理能力

通過異步方式對(duì)系統(tǒng)解耦

以用戶注冊(cè)為例,一般情況下:
聊聊mq的使用場(chǎng)景

成都網(wǎng)站設(shè)計(jì)、成都網(wǎng)站制作服務(wù)團(tuán)隊(duì)是一支充滿著熱情的團(tuán)隊(duì),執(zhí)著、敏銳、追求更好,是創(chuàng)新互聯(lián)的標(biāo)準(zhǔn)與要求,同時(shí)竭誠為客戶提供服務(wù)是我們的理念。成都創(chuàng)新互聯(lián)把每個(gè)網(wǎng)站當(dāng)做一個(gè)產(chǎn)品來開發(fā),精雕細(xì)琢,追求一名工匠心中的細(xì)致,我們更用心!

分下一下,上面過程存在的一些問題:

  1. 注冊(cè)過程會(huì)調(diào)用4個(gè)服務(wù)(注冊(cè)服務(wù)、郵件服務(wù)、短信服務(wù)、積分服務(wù)),服務(wù)之間依賴性太強(qiáng),任何一個(gè)服務(wù)不可用,直接影響整個(gè)注冊(cè)業(yè)務(wù)
  2. 接口耗時(shí)太長,每個(gè)服務(wù)耗時(shí)100ms,注冊(cè)流程耗時(shí)400ms
  3. 對(duì)用戶來說,用戶信息入庫是主要的業(yè)務(wù)流程,其他并不是響應(yīng)用戶過程中直接關(guān)注的邏輯,可以異步進(jìn)行處理

采用mq的方式實(shí)現(xiàn):
聊聊mq的使用場(chǎng)景

過程:

  • 調(diào)用注冊(cè)服務(wù),注冊(cè)信息入庫,耗時(shí)100ms
  • 投遞注冊(cè)消息到mq
  • 返回注冊(cè)成功
  • 對(duì)于用戶來說耗時(shí)200ms
  • 其他3個(gè)操作(發(fā)郵件、發(fā)短信、增加積分)從消息隊(duì)列中拉取消息進(jìn)行處理,對(duì)于主流程來說是異步操作

將依賴于3個(gè)服務(wù)轉(zhuǎn)換為只依賴于mq服務(wù),只需要保證注冊(cè)服務(wù)、mq服務(wù)高可用,即可以保證注冊(cè)服務(wù)的高可用,相比保證其他3個(gè)服務(wù)高可用上容易了許多。

增加系統(tǒng)的并發(fā)處理能力

以電商中的秒殺場(chǎng)景為例,采用同步處理:

  • 用戶點(diǎn)擊秒殺
  • 調(diào)用訂單服務(wù),驗(yàn)證庫存、鎖定庫存
  • 跳轉(zhuǎn)到支付頁面進(jìn)行支付

分析一下,存在的問題:

  • 驗(yàn)證庫存、鎖定庫存會(huì)訪問數(shù)據(jù)庫
  • 秒殺場(chǎng)景,商品數(shù)量有限,請(qǐng)求量非常大,每個(gè)請(qǐng)求來了都做以上處理,直接會(huì)把數(shù)據(jù)庫壓垮,導(dǎo)致數(shù)據(jù)庫無法對(duì)外提供服務(wù),數(shù)據(jù)庫的不可用直接導(dǎo)致整個(gè)業(yè)務(wù)的不可用,秒殺活動(dòng)打水漂。

  • 大量請(qǐng)求會(huì)同時(shí)到達(dá),同時(shí)去訪問數(shù)據(jù)庫,數(shù)據(jù)庫連接有限,導(dǎo)致很多請(qǐng)求會(huì)處于等待狀態(tài),導(dǎo)致并發(fā)性能急劇下降
  • 大量用戶同時(shí)操作庫存,存在爭(zhēng)搶數(shù)據(jù)庫鎖的情況,容易導(dǎo)致死鎖
  • 秒殺中數(shù)量一般是有限,大量用戶搶購,其實(shí)最終只有很少的用戶能夠搶購到

大家都有在銀行辦理業(yè)務(wù)的經(jīng)驗(yàn),銀行處理業(yè)務(wù)的流程:領(lǐng)號(hào)、排隊(duì)、等待叫號(hào)辦理業(yè)務(wù)

秒殺中我們也可以參考銀行辦理業(yè)務(wù)的流程:

  • 用戶點(diǎn)擊描述
  • 系統(tǒng)接受到用戶請(qǐng)求后,生成一個(gè)唯一的編號(hào),然后投遞一條消息(秒殺下單)到mq
  • 響應(yīng)用戶:秒殺正在處理中
  • 秒殺系統(tǒng)從mq中拉取消息進(jìn)行處理,處理完成之后告知用戶,這步操作對(duì)于用戶來說是異步處理的過程

從上面可以看出,從接受用戶請(qǐng)求到響應(yīng)用戶請(qǐng)求,未訪問數(shù)據(jù)庫,只有生成編號(hào)和發(fā)送消息的操作,這部分處理速度是非??斓?,不存在性能的問題,數(shù)據(jù)庫也不存在壓力的問題了,所有用戶的請(qǐng)求都被作為一條消息投遞到mq進(jìn)行異步處理;從而解決了秒殺中同步處理遇到的各種問題。

其他一些使用場(chǎng)景

  1. 系統(tǒng)日志的處理
    系統(tǒng)手機(jī)日志,異步發(fā)送到mq,日志服務(wù)隊(duì)從mq中拉取消息進(jìn)行各種處理,關(guān)于這個(gè)以后我們會(huì)專門討論。
  2. 通過事件驅(qū)動(dòng)的一些業(yè)務(wù),也可以使用mq實(shí)現(xiàn)

總結(jié)

  1. mq是采用異步的方式來解決系統(tǒng)耦合性的問題,并發(fā)處理的問題;重點(diǎn)是在于異步,那么什么情況下使用異步呢?當(dāng)調(diào)用方不強(qiáng)依賴于被調(diào)用方的結(jié)果的時(shí)候,可以采用異步的方式進(jìn)行處理,此時(shí)可以使用mq。
  2. 當(dāng)調(diào)用方強(qiáng)依賴于被調(diào)用方的結(jié)果的時(shí)候,需要使用同步的方式,不能使用mq

mq系列整個(gè)內(nèi)容,我們將討論

  1. mq的使用場(chǎng)景
  2. 業(yè)務(wù)系統(tǒng)中投遞消息的幾種方式?
  3. 如何確保投遞消息一定成功?
  4. 消息消費(fèi)的幾種方式
  5. 如何確保消息至少消費(fèi)一次
  6. 如何保證消息消費(fèi)的冪等性

路人甲Java,只生產(chǎn)干貨,公眾號(hào):javacode2018,喜歡的關(guān)注一下。

另外有需要云服務(wù)器可以了解下創(chuàng)新互聯(lián)scvps.cn,海內(nèi)外云服務(wù)器15元起步,三天無理由+7*72小時(shí)售后在線,公司持有idc許可證,提供“云服務(wù)器、裸金屬服務(wù)器、高防服務(wù)器、香港服務(wù)器、美國服務(wù)器、虛擬主機(jī)、免備案服務(wù)器”等云主機(jī)租用服務(wù)以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡單易用、服務(wù)可用性高、性價(jià)比高”等特點(diǎn)與優(yōu)勢(shì),專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應(yīng)用場(chǎng)景需求。


網(wǎng)頁題目:聊聊mq的使用場(chǎng)景-創(chuàng)新互聯(lián)
本文來源:http://weahome.cn/article/djcepo.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部