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ā)送者和接收者間沒有依賴性,發(fā)送者發(fā)送消息之后,不管有沒有接收者在運(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)者群組的,也就是說 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)文章
Intellij IDEA 錄制快捷鍵實(shí)現(xiàn)自動(dòng)格式化的方法
這篇文章主要介紹了Intellij IDEA 錄制快捷鍵實(shí)現(xiàn)自動(dòng)格式化的方法,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2020-09-09詳解Springboot應(yīng)用啟動(dòng)以及關(guān)閉時(shí)完成某些操作
這篇文章主要介紹了詳解Springboot應(yīng)用啟動(dòng)以及關(guān)閉時(shí)完成某些操作,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2018-11-11Java對(duì)象傳遞與返回的細(xì)節(jié)問題詳析
我們知道這是一個(gè)核心概念,在Java中總是按值傳遞而不是按引用傳遞,下面這篇文章主要給大家介紹了關(guān)于Java對(duì)象傳遞與返回的細(xì)節(jié)問題的相關(guān)資料,需要的朋友可以參考下2022-11-11Spring MVC+mybatis實(shí)現(xiàn)注冊(cè)登錄功能
這篇文章主要為大家詳細(xì)介紹了Spring MVC+mybatis實(shí)現(xiàn)注冊(cè)登錄功能,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2017-07-07java讀取配置文件(properties)的時(shí)候,unicode碼轉(zhuǎn)utf-8方式
這篇文章主要介紹了java讀取配置文件(properties)的時(shí)候,unicode碼轉(zhuǎn)utf-8方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2022-02-02Java數(shù)據(jù)結(jié)構(gòu)學(xué)習(xí)之二叉樹
今天給大家?guī)淼氖顷P(guān)于Java數(shù)據(jù)結(jié)構(gòu)的相關(guān)知識(shí),文章圍繞著Java二叉樹展開,文中有非常詳細(xì)的介紹及代碼示例,需要的朋友可以參考下2021-06-06Spring Security 安全框架應(yīng)用原理解析
這篇文章主要介紹了Spring Security 安全框架應(yīng)用,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2021-07-07java實(shí)現(xiàn)小型局域網(wǎng)群聊功能(C/S模式)
這篇文章主要介紹了java利用TCP協(xié)議實(shí)現(xiàn)小型局域網(wǎng)群聊功能(C/S模式) ,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2016-08-08