【赵渝强老师】Kafka消息的消费模式

Kafka消费者组中的消息消费模型有两种,即:推送模式(push)和拉取模式(pull)。

视频讲解如下
【赵渝强老师】Kafka消息的消费模式

一、消息的推送模式

这种消息的消费模式需要记录消费者的消费者状态。当把一条消息推送给消费者后,需要维护消息的状态。如果这条消息已经被消费将会对消息进行标记。这种方式无法很好地保证消息被处理。如果要保证消息被处理,发送完消息后需要将其状态设置为"已发送";而收到消费者的确认后才将其状态更新为"已消费",这就需要Kafka记录所有消息的消费状态,显然这种方式不可取。这种方式还存在一个明显的缺点就是消息被标记为"已消费"后,其他的消费者将不能再进行消费了。

二、消息的拉取模式

由于推送模式存在一定的缺点,因此Kafka采用了消费拉取的消费模式来消费消息。该模式由每个消费者自己维护自己的消费状态,并且每个消费者互相独立地按顺序拉取每个分区的消息。消费者通过偏移量的信息来控制从Kafka中消费的消息。如下图所示。

这种由消费者通过偏移量进行消息消费的优点在于,消费者可以按照任意的顺序消费消息。例如,消费者可以通过重置偏移量信息重新处理之前已经消费过的消息;或者直接跳转到某一个偏移量位置并开始消费。

这里需要特别说明的是,当生产者最新写入的消息如果还没有达到备份数量,即,新写入的消息还没有达到副本数要求的时候,对消费者是不可见的。

另外,消费者如果已经将消息进行了消费,Kafka并不会立即将消息进行删除,而是会将所有的消息进行保存。Kafka会将消息持久化保存到Kafka的消息日志中。不管消息有没有被消费掉,用户可以通过设置保留时间来清理过期的消息数据。

相关推荐
武子康7 小时前
大数据-237 离线数仓 - Hive 广告业务实战:ODS→DWD 事件解析、广告明细与转化分析落地
大数据·后端·apache hive
大大大大晴天9 小时前
Flink生产问题排障-Kryo serializer scala extensions are not available
大数据·flink
武子康2 天前
大数据-236 离线数仓 - 会员指标验证、DataX 导出与广告业务 ODS/DWD/ADS 全流程
大数据·后端·apache hive
DemonAvenger3 天前
Kafka性能调优:从参数配置到硬件选择的全方位指南
性能优化·kafka·消息队列
初次攀爬者3 天前
ZooKeeper 实现分布式锁的两种方式
分布式·后端·zookeeper
武子康3 天前
大数据-235 离线数仓 - 实战:Flume+HDFS+Hive 搭建 ODS/DWD/DWS/ADS 会员分析链路
大数据·后端·apache hive
DianSan_ERP4 天前
电商API接口全链路监控:构建坚不可摧的线上运维防线
大数据·运维·网络·人工智能·git·servlet
够快云库4 天前
能源行业非结构化数据治理实战:从数据沼泽到智能资产
大数据·人工智能·机器学习·企业文件安全
AI周红伟4 天前
周红伟:智能体全栈构建实操:OpenClaw部署+Agent Skills+Seedance+RAG从入门到实战
大数据·人工智能·大模型·智能体
B站计算机毕业设计超人4 天前
计算机毕业设计Django+Vue.js高考推荐系统 高考可视化 大数据毕业设计(源码+LW文档+PPT+详细讲解)
大数据·vue.js·hadoop·django·毕业设计·课程设计·推荐算法