Kafka中消息隊(duì)列的兩種模式講解
Kafka消息隊(duì)列的兩種模式
消息隊(duì)列包括兩種模式,點(diǎn)對(duì)點(diǎn)模式(point to point, queue)和發(fā)布/訂閱模式(publish/subscribe,topic)
1、點(diǎn)對(duì)點(diǎn)模式
點(diǎn)對(duì)點(diǎn)模式下包括三個(gè)角色:
- 消息隊(duì)列
- 發(fā)送者 (生產(chǎn)者)
- 接收者(消費(fèi)者)

消息發(fā)送者生產(chǎn)消息發(fā)送到queue中,然后消息接收者從queue中取出并且消費(fèi)消息。消息被消費(fèi)以后,queue中不再有存儲(chǔ),所以消息接收者不可能消費(fèi)到已經(jīng)被消費(fèi)的消息。
點(diǎn)對(duì)點(diǎn)模式特點(diǎn):
- 每個(gè)消息只有一個(gè)接收者(Consumer)(即一旦被消費(fèi),消息就不再在消息隊(duì)列中);
- 發(fā)送者和接收者間沒(méi)有依賴性,發(fā)送者發(fā)送消息之后,不管有沒(méi)有接收者在運(yùn)行,都不會(huì)影響到發(fā)送者下次發(fā)送消息;
- 接收者在成功接收消息之后需向隊(duì)列應(yīng)答成功,以便消息隊(duì)列刪除當(dāng)前接收的消息;
2、發(fā)布/訂閱模式
發(fā)布/訂閱模式下包括三個(gè)角色:
- 角色主題(Topic)
- 發(fā)布者(Publisher)
- 訂閱者(Subscriber)

發(fā)布者將消息發(fā)送到Topic,系統(tǒng)將這些消息傳遞給多個(gè)訂閱者。
發(fā)布/訂閱模式特點(diǎn):
- 每個(gè)消息可以有多個(gè)訂閱者;
- 發(fā)布者和訂閱者之間有時(shí)間上的依賴性。針對(duì)某個(gè)主題(Topic)的訂閱者,它必須創(chuàng)建一個(gè)訂閱者之后,才能消費(fèi)發(fā)布者的消息。
- 為了消費(fèi)消息,訂閱者需要提前訂閱該角色主題,并保持在線運(yùn)行;
Kafka消息隊(duì)列模型圖解
Kafka 的消息隊(duì)列一般分為兩種模式:點(diǎn)對(duì)點(diǎn)模式和發(fā)布訂閱模式
Kafka 是支持消費(fèi)者群組的,也就是說(shuō) Kafka 中會(huì)有一個(gè)或者多個(gè)消費(fèi)者,如果一個(gè)生產(chǎn)者生產(chǎn)的消息由一個(gè)消費(fèi)者進(jìn)行消費(fèi)的話,那么這種模式就是點(diǎn)對(duì)點(diǎn)模式

如果一個(gè)生產(chǎn)者或者多個(gè)生產(chǎn)者產(chǎn)生的消息能夠被多個(gè)消費(fèi)者同時(shí)消費(fèi)的情況,這樣的消息隊(duì)列成為發(fā)布訂閱模式的消息隊(duì)列

隊(duì)列模型非常簡(jiǎn)單 topic主題:
隊(duì)列 就是消息的分類。
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
servlet異步請(qǐng)求的實(shí)現(xiàn)
本文主要介紹了servlet異步請(qǐng)求的實(shí)現(xiàn),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2022-07-07
SpringBoot參數(shù)校驗(yàn):@Valid與@Validated使用詳解
這篇文章主要介紹了SpringBoot參數(shù)校驗(yàn):@Valid與@Validated使用詳解,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2025-03-03
Springboot實(shí)現(xiàn)導(dǎo)入導(dǎo)出Excel的方法
今天帶各位小伙伴學(xué)習(xí)Springboot實(shí)現(xiàn)導(dǎo)入導(dǎo)出Excel的方法,文中有非常詳細(xì)的介紹,對(duì)正在學(xué)習(xí)java的小伙伴們有很好地幫助,需要的朋友可以參考下2021-05-05
MyBatis常用的jdbcType數(shù)據(jù)類型
這篇文章主要介紹了MyBatis常用的jdbcType數(shù)據(jù)類型的相關(guān)資料,需要的朋友可以參考下2016-12-12
關(guān)于集合和字符串的互轉(zhuǎn)實(shí)現(xiàn)方法
下面小編就為大家?guī)?lái)一篇關(guān)于集合和字符串的互轉(zhuǎn)實(shí)現(xiàn)方法。小編覺(jué)得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2016-08-08
idea中MavenWeb項(xiàng)目不能創(chuàng)建Servlet的解決方案
這篇文章主要介紹了idea中MavenWeb項(xiàng)目不能創(chuàng)建Servlet的解決方案,本文給大家介紹的非常詳細(xì),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2020-02-02

