
本文對應視頻:https://www.bilibili.com/video/BV1Fu411y73E/
[TOC]
## 一、消息傳遞模型
通常來說,消息隊列的消息傳遞模型主要有兩種:
1、Point-to-Point(P2P),一條消息由一個消費者消費。
2、Publish/Subscribe(Pub/Sub),一條消息被多個消費者消費。
### 1. P2P模型(點對點模型)
在P2P(點對點)模型中,一條消息僅能被一個消費者進行消費。消息隊列負責接收生產者發布消息,同時支持消費者從隊列中獲取消息。

P2P的特點:
1. 每個消息只能被一個消費者(Consumer)消費。也就是說,消息被處理一次,并且僅被處理一次。
2. 生產者和消費者之間是不存在耦合關系的,生產者向消息隊列發送了消息之后,不論消費者是否處于運行狀態,都不會影響到消息被發送到消息隊列中。
3. 可能會有多個消費者偵聽同一個隊列,但是隊列中的某一個消息只能被其中一個消費者所消費。
4. 消費者在成功消費消息之后需要向隊列進行應答反饋,所以如果你需要保證消息傳遞的可靠性,那么你需要使用P2P模式的消息隊列。
5. 消息按照順序依次放入消息隊列中,消息隊列按照先進先出的原則把消息傳送給消費者(除非使用了特殊消息優先級設置,否則一律遵循該原則)。

集群消費模式(消費者組模式),是為了提高吞吐量,針對同一個隊列或消費主題,存在多個消費者。多個消費者組成一個消費者組,盡量均衡的消費消息隊列中的消息。消費者組模式本質上仍然是P2P模式,消息被消費者組內的某一個消費者處理一次,并且僅被處理一次。
但是消費者組消費的模式和基礎的P2P模式,還是有一些區別:**就是消費者組模式通常無法保證消費的順序。**
### 2.Publish/Subscribe模型(發布訂閱模型)
在Pub / Sub(發布訂閱)模型中,一條消息被多個消費者(訂閱者)消費,這個消費過程就像是廣播。生產者(發布者)就像是廣播員,消費者(訂閱者)就像是聽眾。

Publish/Subscribe的特點:
1. 每個消息可以被多個消費者(或消費者組)進行消費,這個過程通常被稱為“訂閱”,消費者也被稱為訂閱者;
2. 消息發布者通常不會知道、也感知不到哪些訂閱者正在接收該主題的消息。消息的發布者就像是一個新聞播音員,新聞我是播完了,哪些觀眾看、哪些觀眾沒看就和播音員關系不大了。就像聽眾不需要向播音員反饋信息,消息發布者也不需要等待消息訂閱者的反饋。
- 文檔概要
- 如何提問
- 一、kafka基礎入門
- 1.1.白話消息隊列
- 1.2.消息傳遞模型
- 1.3.典型應用場景一
- 1.4.典型應用場景二
- 1.5.kafka簡單介紹
- 1.6.kafka核心概念解析
- 1.7.搭建kafka單機版
- 1.8.kafka3中zk替代方案
- 二、生產級集群安裝
- 2.1.linux安裝JDK
- 2.2.linux主機與ip解析
- 2.3.linux新建用戶
- 2.4.linux開放防火墻端口
- 2.5.最大打開文件句柄數
- 2.6.集群主機之間免密登錄
- 2.7.zookeeper集群安裝(腳本)
- 2.8.kafka集群安裝部署(腳本)
- 2.9.kafka3無需zk的集群安裝
- 2.10.集群可用性驗證及配置
- 2.11.kafka集群可靠性配置
- 2.12內外網絡映射問題
- 三、生產者客戶端
- 3.1.本章閱讀說明
- 3.2.圖解kafka生產者
- 3.3.數據生產可靠性
- 3.4.保證消息順序性
- 3.5.生產者Java實現
- 3.6.自定義攔截器
- 3.7.自定義序列化器
- 3.8.自定義分區器
- 3.9.冪等與事務處理
- 四、消費者客戶端
- 4.1.消費者組與數據積壓
- 4.2.消費者Java實現
- 4.3.消費偏移與可靠性
- 4.4.分區再均衡
- 4.5.線程池與消費者組
- 4.6.消費者攔截器
- 4.7.自定義反序列化器
- 五、SpringBoot集成kafka
- 5.1.整合集成kafka客戶端
- 5.2.生產者同步異步分區攔截
- 5.3.生產者事務處理
- 5.4.KafkaListener詳解
- 5.5.Header及sendTo
- 5.5.監聽器模式及偏移量提交
- 5.3.消費監聽器的異常處理
- 5.6.JSON序列化日期問題處理
- 六、kafka安全認證
- 6.1.用戶名密碼PLAIN認證
- 6.2.SCRAM認證
- 6.3.Kerberos認證(撰寫中)
- 七、kafka運維配置管理
- 7.1.topic管理命令
- 7.2.KafkaTool帶界面管理工具
- 7.3.LogiKM企業級監控管理(撰寫中)
- 附錄
- linux虛擬機集群的搭建
- 筆者其他作品推薦
- vue深入淺出系列
- 手摸手教你Spring Boot2.0
- Spring Security-JWT-OAuth2一本通
- 實戰前后端分離RBAC權限管理系統
- 實戰SpringCloud微服務從青銅到王者
- 送書活動