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

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

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

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

隊列模型非常簡單 topic主題:
隊列 就是消息的分類。
以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關(guān)文章
Intellij IDEA 錄制快捷鍵實現(xiàn)自動格式化的方法
這篇文章主要介紹了Intellij IDEA 錄制快捷鍵實現(xiàn)自動格式化的方法,本文給大家介紹的非常詳細,對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下2020-09-09
詳解Springboot應(yīng)用啟動以及關(guān)閉時完成某些操作
這篇文章主要介紹了詳解Springboot應(yīng)用啟動以及關(guān)閉時完成某些操作,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2018-11-11
Spring MVC+mybatis實現(xiàn)注冊登錄功能
這篇文章主要為大家詳細介紹了Spring MVC+mybatis實現(xiàn)注冊登錄功能,具有一定的參考價值,感興趣的小伙伴們可以參考一下2017-07-07
java讀取配置文件(properties)的時候,unicode碼轉(zhuǎn)utf-8方式
這篇文章主要介紹了java讀取配置文件(properties)的時候,unicode碼轉(zhuǎn)utf-8方式,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2022-02-02
Java數(shù)據(jù)結(jié)構(gòu)學(xué)習(xí)之二叉樹
今天給大家?guī)淼氖顷P(guān)于Java數(shù)據(jù)結(jié)構(gòu)的相關(guān)知識,文章圍繞著Java二叉樹展開,文中有非常詳細的介紹及代碼示例,需要的朋友可以參考下2021-06-06
Spring Security 安全框架應(yīng)用原理解析
這篇文章主要介紹了Spring Security 安全框架應(yīng)用,本文給大家介紹的非常詳細,對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下2021-07-07
java實現(xiàn)小型局域網(wǎng)群聊功能(C/S模式)
這篇文章主要介紹了java利用TCP協(xié)議實現(xiàn)小型局域網(wǎng)群聊功能(C/S模式) ,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下2016-08-08

