activeMQ了解一下(一)

正式介紹activeMQ之前,讓我們先了解幾個(gè)名詞

一、JMS消息服務(wù)

即java的消息服務(wù),JMS的客戶端之間通過(guò)JMS進(jìn)行異步的消息傳輸

1.消息模型
P2P point to point 點(diǎn)對(duì)點(diǎn)模式
Pub/Sub publish/Subscribe 發(fā)布訂閱模式
p2p.png

每個(gè)消息被發(fā)送到隊(duì)列,接收者從隊(duì)列獲取消息。隊(duì)列里一直保留消息,直到消息被消費(fèi)或超時(shí)。

P2P特點(diǎn):
  • 每個(gè)消息只能有一個(gè)消費(fèi)者,一旦消費(fèi),即不在隊(duì)列中
  • 發(fā)送者和接收者不存在依賴性
  • 接收者在接收成功后,要向隊(duì)列應(yīng)答成功。無(wú)特殊配置時(shí),默認(rèn)自動(dòng)commit
使用場(chǎng)景:希望每個(gè)消息都被成功處理,且只有一個(gè)消費(fèi)者
publish_subscribe.png

多個(gè)發(fā)布者將消息發(fā)送到主題,系統(tǒng)將消息傳遞給多個(gè)訂閱者

Pub/Sub特點(diǎn)
  • 每個(gè)消息可以有多個(gè)消費(fèi)者
  • 發(fā)布和訂閱有時(shí)間上依賴性,針對(duì)某個(gè)topic,要先創(chuàng)建一個(gè)訂閱者才能消費(fèi)消息,且訂閱者必須保持運(yùn)行狀態(tài)
  • 為緩和這種嚴(yán)格的時(shí)間相關(guān)性,JMS允許訂閱者創(chuàng)建一個(gè)可持久化的訂閱。這樣,即使訂閱者沒(méi)有被激活(運(yùn)行),它也能接收到發(fā)布者的消息。
使用場(chǎng)景:

如果你希望發(fā)送的消息可以不被做任何處理、或者被一個(gè)消息者處理、或者可以被多個(gè)消費(fèi)者處理的話,那么可以采用Pub/Sub模型

2.消息如何消費(fèi)

1).同步:調(diào)用使用receive方法,此方法在接收到消息之前會(huì)一直阻塞
2).異步:注冊(cè)消息監(jiān)聽器,消息到達(dá)時(shí),系統(tǒng)自動(dòng)調(diào)用監(jiān)聽器的onMessage方法

二,消息隊(duì)列中間件

1,應(yīng)用場(chǎng)景
(1) 異步處理

例如:注冊(cè)后發(fā)送短信、郵件,下單后調(diào)用第三方支付接口等,將需要執(zhí)行的消息放入隊(duì)列,客戶端會(huì)迅速收到響應(yīng),有利于用戶體驗(yàn)

(2)應(yīng)用解耦

例如:在業(yè)務(wù)復(fù)雜的項(xiàng)目里,一個(gè)請(qǐng)求涉及跨系統(tǒng),跨接口操作,當(dāng)?shù)谌?、第四方系統(tǒng)網(wǎng)絡(luò)異常等時(shí),導(dǎo)致請(qǐng)求失敗,耦合太強(qiáng)。

(3)流量削鋒

例如:秒殺活動(dòng),秒殺時(shí)不做業(yè)務(wù)處理,交給消息隊(duì)列,并限制消息隊(duì)列的長(zhǎng)度,可有效控制參與人數(shù)并防止高流量壓垮應(yīng)用

(4)日志處理

例如:kafka應(yīng)用,日志采集寫入kafka隊(duì)列,此隊(duì)列復(fù)雜接收,存儲(chǔ)和轉(zhuǎn)發(fā),訂閱者訂閱kafka里的日志數(shù)據(jù)

(5)消息通訊

如:消息室,微博等

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • Spring Cloud為開發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見模式的工具(例如配置管理,服務(wù)發(fā)現(xiàn),斷路器,智...
    卡卡羅2017閱讀 136,545評(píng)論 19 139
  • 以下是消息隊(duì)列以下的大綱,本文主要介紹消息隊(duì)列概述,消息隊(duì)列應(yīng)用場(chǎng)景和消息中間件示例(電商,日志系統(tǒng))。 本次分享...
    文檔隨手記閱讀 1,937評(píng)論 0 28
  • 一、 消息隊(duì)列概述 消息隊(duì)列中間件是分布式系統(tǒng)中重要的組件,主要解決應(yīng)用耦合、異步消息、流量削鋒等問(wèn)題。實(shí)現(xiàn)高性能...
    步積閱讀 57,438評(píng)論 10 138
  • 1 消息隊(duì)列概述 消息隊(duì)列中間件是分布式系統(tǒng)中重要的組件,主要解決應(yīng)用耦合,異步消息,流量削鋒等問(wèn)題。實(shí)現(xiàn)高性能,...
    Bobby0322閱讀 11,046評(píng)論 0 24
  • 一只黑色的貓 走在黑色的軌跡上 旁邊黑色的河流里 游過(guò)一群黑色的魚 黑色的貓?zhí)M(jìn)黑色的水里去捉黑色的魚 黑色的水濺...
    先生丿尹閱讀 481評(píng)論 0 5

友情鏈接更多精彩內(nèi)容