日韩精品欧美激情国产一区_中文无码精品一区二区三区在线_岛国毛片AV在线无码不卡_亞洲歐美日韓精品在線_使劲操好爽好粗视频在线播放_日韩一区欧美二区_八戒八戒网影院在线观看神马_亚洲怡红院在线色网_av无码不卡亚洲电影_国产麻豆媒体MDX

activemq應(yīng)用場景都有哪些?

時(shí)間:2022-10-14 11:02:23 類型:JAVA
字號(hào):    

  activemq都一般應(yīng)用于什么場景中呢?小伙伴們知道嗎?本篇文章就帶你了解下它的常見應(yīng)用場景。

  一、應(yīng)用解耦

  場景舉例:用戶下單后,訂單系統(tǒng)需要通知庫存系統(tǒng)。傳統(tǒng)做法是,訂單系統(tǒng)調(diào)用庫存系統(tǒng)的接口,它的缺點(diǎn):如若庫存系統(tǒng)無法訪問,則訂單減庫存將失敗,導(dǎo)致訂單失敗,訂單系統(tǒng)與庫存系統(tǒng)存在耦合。

  消息隊(duì)列引入應(yīng)用后方案,如圖:

1.jpg

  訂單系統(tǒng):用戶下單后,訂單系統(tǒng)完成持久化處理,將消息寫入消息隊(duì)列,返回用戶訂單下單成功

  庫存系統(tǒng):訂閱下單的消息,采用拉/推的方式,獲取下單信息,庫存系統(tǒng)根據(jù)下單信息,進(jìn)行庫存操作

  如若:下單時(shí)庫存系統(tǒng)不能正常使用。也不影響正常下單,因?yàn)橄聠魏?,訂單系統(tǒng)寫入消息隊(duì)列就不再關(guān)心其他的后續(xù)操作了。實(shí)現(xiàn)訂了單系統(tǒng)與庫存系統(tǒng)的應(yīng)用解耦。

  二、流量削鋒

  流量削鋒是消息隊(duì)列的??停话阍诿霘⒒驁F(tuán)搶活動(dòng)中使用廣泛。

  應(yīng)用舉例:一般因?yàn)榱髁窟^大,導(dǎo)致流量暴增的秒殺活動(dòng)。一般需要在應(yīng)用前端加入消息隊(duì)列。

2.jpg

  特點(diǎn)

  a、控制活動(dòng)人數(shù)

  b、能夠緩解短時(shí)間內(nèi)高流量壓垮應(yīng)用

  流程

  用戶請(qǐng)求被服務(wù)器接收后,首先寫入消息隊(duì)列,如若消息隊(duì)列長度超過最大數(shù)量,則直接拋棄用戶請(qǐng)求或跳轉(zhuǎn)到錯(cuò)誤頁面。

  最后秒殺業(yè)務(wù)根據(jù)消息隊(duì)列中的請(qǐng)求信息,再做后續(xù)處理

  三、異步處理

  場景舉例:用戶注冊(cè)后,需要發(fā)送注冊(cè)郵件和注冊(cè)短信。傳統(tǒng)方式有串行和并行兩種:

  串行:將注冊(cè)信息寫入數(shù)據(jù)庫成功后,發(fā)送注冊(cè)郵件,再發(fā)送注冊(cè)短信。以上三個(gè)任務(wù)全部完成后,返回給客戶端。

  并行:將注冊(cè)信息寫入數(shù)據(jù)庫成功后,發(fā)送注冊(cè)郵件的同時(shí),發(fā)送注冊(cè)短信。以上三個(gè)任務(wù)完成后,返回給客戶端。與串行的差別是,并行的方式可以提高處理的時(shí)間

  我們假設(shè)三個(gè)業(yè)務(wù)節(jié)點(diǎn)每個(gè)使用時(shí)間為50毫秒鐘,不考慮網(wǎng)絡(luò)等其他開銷,則串行方式的時(shí)間是150毫秒,并行的時(shí)間可能是100毫秒。

  因?yàn)镃PU在單位時(shí)間內(nèi)處理的請(qǐng)求數(shù)是一定的,假設(shè)CPU1秒內(nèi)吞吐量是100次。則串行方式1秒內(nèi)CPU可處理的請(qǐng)求量是7次(1000/150)。并行方式處理的請(qǐng)求量是10次(1000/100)

  如以上描述,傳統(tǒng)方式系統(tǒng)的性能及響應(yīng)時(shí)間必定會(huì)有瓶頸。

  引入消息隊(duì)列,將不是必須的業(yè)務(wù)邏輯,異步處理。改造后架構(gòu)如下:

  按照以上說法,用戶響應(yīng)時(shí)間相當(dāng)于是注冊(cè)信息寫入數(shù)據(jù)庫的時(shí)間,也就是50毫秒。注冊(cè)郵件,發(fā)送短信寫入消息隊(duì)列后,直接返回,所以寫入消息隊(duì)列的速度很快,基本能夠忽略,因此用戶的響應(yīng)時(shí)間可能是50毫秒。因此架構(gòu)改變后,系統(tǒng)的吞吐量提高到每秒20 QPS。比串行提高了3倍,比并行提高了兩倍。


<