当前位置: 首页 > article >正文

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

在这里插入图片描述

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

视频讲解如下

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

一、消息的推送模式

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

二、消息的拉取模式

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

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

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

《从大数据到云原生系列课程》

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


http://www.kler.cn/a/568709.html

相关文章:

  • 常用的api测试软件
  • 飞算JavaAI编程工具集成到idea中
  • 基于javaweb的SSM+Maven幼儿园管理系统设计和实现(源码+文档+部署讲解)
  • Linux-进程与信号
  • 大白话React第十一章React 相关的高级特性以及在实际项目中的应用优化
  • 第50天:Web开发-JavaEE应用SpringBoot栈ActuatorSwaggerHeapDump提取自动化
  • shell脚本编程实践第4天
  • 【网络安全 | 渗透测试】GraphQL精讲一:基础知识
  • 如何通过Python网络爬虫技术应对复杂的反爬机制?
  • Bash Shell 比较注入漏洞:分析与利用
  • 初识flutter1
  • Java Stream 流笔记
  • 电子电气架构 --- AI在整车产品领域的应用
  • 基于SpringBoot + Vue的商城购物系统实战
  • 【vue-echarts】——05.柱状图
  • Python面向对象编程入门:从类与对象到方法与属性
  • JavaFunction的使用
  • AVX2指令集
  • 目前主流 AI 大模型体系全解析:架构、特点与应用
  • 【Python · PyTorch】循环神经网络 RNN(基础应用)