日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 >

java 消息队列_java消息队列

發(fā)布時間:2025/4/16 88 豆豆
生活随笔 收集整理的這篇文章主要介紹了 java 消息队列_java消息队列 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

Java消息服務(wù)(Java Message Service,JMS)應(yīng)用程序接口是一個Java平臺中關(guān)于面向消息中間件(MOM)的API,用于在兩個應(yīng)用程序之間,或分布式系統(tǒng)中發(fā)送消息,進行異步通信。

點對點與發(fā)布訂閱最初是由JMS定義的。這兩種模式主要區(qū)別或解決的問題就是發(fā)送到隊列的消息能否重復(fù)消費(多訂閱)

一、定義

JMS規(guī)范目前支持兩種消息模式:點對點(point to point, queue)和發(fā)布/訂閱(publish/subscribe,topic)

1.1、點對點:Queue(隊列),不可重復(fù)消費

消息生產(chǎn)者生產(chǎn)消息發(fā)送到queue中,然后消息消費者從queue中取出并且消費消息。

消息被消費以后,queue中不再有存儲,所以消息消費者不可能消費到已經(jīng)被消費的消息。Queue支持存在多個消費者,但是對一個消息而言,只會有一個消費者可以消費。

1.2、發(fā)布/訂閱:Topic(主題),可以重復(fù)消費

消息生產(chǎn)者(發(fā)布)將消息發(fā)布到topic(主題)中,同時有多個消息消費者(訂閱)消費該消息。和點對點方式不同,發(fā)布到topic的消息會被所有訂閱者消費。

支持訂閱組的發(fā)布訂閱模式:

發(fā)布訂閱模式下,當(dāng)發(fā)布者消息量很大時,顯然單個訂閱者的處理能力是不足的。實際上現(xiàn)實場景中是多個訂閱者節(jié)點組成一個訂閱組負載均衡消費topic消息即分組訂閱,這樣訂閱者很容易實現(xiàn)消費能力線性擴展。可以看成是一個topic下有多個Queue,每個Queue是點對點的方式,Queue之間是發(fā)布訂閱方式。

2、區(qū)別

2.1、點對點模式

生產(chǎn)者發(fā)送一條消息到queue,一個queue可以有很多消費者,但是一個消息只能被一個消費者接受,當(dāng)沒有消費者可用時,這個消息會被保存直到有 一個可用的消費者,所以Queue實現(xiàn)了一個可靠的負載均衡。

2.2、發(fā)布訂閱模式

發(fā)布者發(fā)送到topic的消息,只有訂閱了topic的訂閱者才會收到消息。topic實現(xiàn)了發(fā)布和訂閱,當(dāng)你發(fā)布一個消息,所有訂閱這個topic的服務(wù)都能得到這個消息,所以從1到N個訂閱者都能得到這個消息的拷貝。

3、流行模型比較

傳統(tǒng)企業(yè)型消息隊列ActiveMQ遵循了JMS規(guī)范,實現(xiàn)了點對點和發(fā)布訂閱模型,但其他流行的消息隊列RabbitMQ、Kafka并沒有遵循JMS規(guī)范。

3.1、RabbitMQ

RabbitMQ實現(xiàn)了AQMP協(xié)議,AQMP協(xié)議定義了消息路由規(guī)則和方式。生產(chǎn)端通過路由規(guī)則發(fā)送消息到不同queue,消費端根據(jù)queue名稱消費消息。

RabbitMQ既支持內(nèi)存隊列也支持持久化隊列,消費端為推模型,消費狀態(tài)和訂閱關(guān)系由服務(wù)端負責(zé)維護,消息消費完后立即刪除,不保留歷史消息。

(1)點對點

生產(chǎn)端發(fā)送一條消息通過路由投遞到Queue,只有一個消費者能消費到。

(2)多訂閱

當(dāng)RabbitMQ需要支持多訂閱時,發(fā)布者發(fā)送的消息通過路由同時寫到多個Queue,不同訂閱組消費不同的Queue。所以支持多訂閱時,消息會多個拷貝。

3.2、Kafka

Kafka只支持消息持久化,消費端為拉模型,消費狀態(tài)和訂閱關(guān)系由客戶端端負責(zé)維護,消息消費完后不會立即刪除,會保留歷史消息。因此支持多訂閱時,消息只會存儲一份就可以了。但是可能產(chǎn)生重復(fù)消費的情況。

(1)點對點&多訂閱

發(fā)布者生產(chǎn)一條消息到topic中,不同訂閱組消費此消息。

總結(jié)

以上是生活随笔為你收集整理的java 消息队列_java消息队列的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。