Kafka-偏移量(含消费者事务)

Kafka概述

在这里插入图片描述

1.什么是偏移量:

  • 在 Kafka 中,每个分区的消息都会被分配一个唯一的偏移量(offset)。偏移量简单来说就是消息在分区中的位置标识。

  • 偏移量从 0 开始递增,每条消息的偏移量都会比前一条消息的偏移量大 1。

  • 消费者通过跟踪每个分区的偏移量来记录自己消费的进度,以便在重新启动或重试时能够准确地从上次停止的位置继续消费消息。

2.偏移量的作用:

(1)记录消费位置:

  • 消费者通过提交偏移量来告知 Kafka 自己已经成功消费了一批消息,Kafka 将会记录这个偏移量,以便在消费者重新加入时能够准确地从上次停止的位置继续消费。

(2)确保消息传递:

  • Kafka 使用偏移量来确保消息被传递一次且仅一次。
  • 消费者可以通过控制偏移量的提交来避免重复消费消息。

(3)容错和恢复:

  • 偏移量的存在使得消费者在发生故障或重启后能够准确地从中断的位置继续消费消息,而不会造成数据丢失或重复消费。

3.offset的默认维护位置

在这里插入图片描述

  • __consumer_offsets主题里面采用key和value的方式存储数据。
  • key是group.id+topic+分区号,value就是当前offset的值。
  • 每隔一段时间,kafka内部会对这个topic进行compact,也就是每个group.id+topic+分区号就保留最新数据。

4.偏移量的管理:

(1)自动提交:

  • 消费者可以选择开启自动提交偏移量的功能,让 Kafka 在后台自动管理偏移量的提交。
  • 这种方式简化了偏移量的管理,但可能会导致一些问题,如消息重复消费。
    在这里插入图片描述
    在这里插入图片描述

(2)手动提交:

  • 消费者也可以选择手动提交偏移量,以更精确地控制偏移量的提交时机。
  • 手动提交偏移量可以在处理每条消息后立即提交,也可以在一批消息处理完成后批量提交。
    在这里插入图片描述

5.指定Offset消费

在这里插入图片描述

5.漏消费和重复消费

  • 重复消费:已经消费了数据,但是offset没提交。
    在这里插入图片描述

  • 漏消费:先提交offset后消费,有可能会造成数据的漏消费。
    在这里插入图片描述

怎么能做到既不漏消费也不重复消费呢?详看消费者事务。

6.消费者事务

在这里插入图片描述

7.数据积压

在这里插入图片描述
在这里插入图片描述

偏移量在 Kafka 中起着非常重要的作用,它不仅记录了消费者消费消息的位置,还确保了消息的传递和消费者的容错恢复能力。消费者需要适时地提交偏移量,以确保消费进度能够正确记录并在需要时能够准确地恢复。


Tips:想了解更多相关知识,可以移步我的主页哦~

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/634763.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

shell快捷命令与正则表达式

一.高效快捷命令 1.快捷排序——sort 以行为单位对文件内容进行排序,也可以根据不同的数据类型来排序比较原则是从首字符向后,依次按ASCII码值进行比较,最后将他们按升序输出。 语法格式 sort [选项] 参数 cat file | sort 选项 -n 按照数…

Java操作Word文档,根据模板生成文件

Java操作Word文档 poi-tl介绍 官方文档:https://deepoove.com/poi-tl/ poi-tl(poi template language)是Word模板引擎,使用模板和数据创建很棒的Word文档。 在文档的任何地方做任何事情(Do Anything Anywhere&#…

计算机毕业设计 | node.js(Express)+vue影院售票商城 电影放映购物系统(附源码+论文)

1,绪论 1.1 项目背景 最近几年,我国影院企业发展迅猛,各大电影院不断建设新的院线,每年新投入使用的荧幕数目逐年显著上升。这离不开人们的观影需求及对观影的过程要求的不断进步。广大观影消费者需要知道自己的空闲时间&#x…

冯喜运:5.23黄金市场风云变幻,黄金原油美盘趋势分析

【黄金消息面分析】:在经历了一段时期的强劲上涨后,黄金市场似乎迎来了调整期。北京时间周四(5月23日),国际黄金价格连续第三个交易日下跌,目前交投在2365美元附近,较周一触及的纪录高点2449.89美元已下跌约4%。这一跌…

使用 ASM 修改字段类型,解决闪退问题

问题 我的问题是什么? 在桥接类 UnityBridgeActivity 中处理不同 unity 版本调用 mUnityPlayer.destroy(); 闪退问题。 闪退日志如: 闪退日志说在 UnityBridgeActivity中找不到类型为 UnityPlayer 的属性 mUnityPlayer。 我们知道,Android…

【webrtc】内置opus解码器的移植

m98 ,不知道是什么版本的opus,之前的交叉编译构建: 【mia】ffmpeg + opus 交叉编译 【mia】ubuntu22.04 : mingw:编译ffmpeg支持opus编解码 看起来是opus是1.3.1 只需要移植libopus和opus的webrtc解码部分即可。 linux构建的windows可运行的opus库 G:\NDDEV\aliply-0.4\C…

同旺科技 FLUKE ADPT 隔离版发布 ---- 2

所需设备: 1、FLUKE ADPT 隔离版 内附链接; 应用于:福禄克Fluke 12E / 15BMax / 17B Max / 101 / 106 / 107 应用于:福禄克Fluke 15B / 17B / 18B 正面: 反面: 侧面: 开孔位置(可…

产品推荐|净气型毒害品柜

SAVEST净气型毒害品柜专为各类危险品、有毒化学品、贵重药品及科研标本等既有严格温湿度控制,又有高度安全保障的物品的存储管理而设计,可广泛应用于各个领域。 净气型毒害品柜产品特点 1. SAVEST净气型毒害品柜由双层钢板构造,两层钢板间隔…

2024 中青杯高校数学建模竞赛(A题)数学建模完整思路+完整代码全解全析

你是否在寻找数学建模比赛的突破点?数学建模进阶思路! 作为经验丰富的数学建模团队,我们将为你带来2024 长三角高校数学建模竞赛(A题)的全面解析。这个解决方案包不仅包括完整的代码实现,还有详尽的建模过…

温故而知新-Java基础篇【面试复习】

温故而知新-Java基础篇【面试复习】 前言版权推荐温故而知新-基础篇【面试】解决hash冲突的方法try catch finallyException与Error的包结构OOM你遇到过哪些情况,SOF你遇到过哪些情况线程有哪些基本状态?Java IO与 NIO的区别堆和栈的区别对象分配规则notify()和not…

安装ollama并部署大模型并测试

Ollama介绍 项目地址:ollama 官网地址: https://ollama.com 模型仓库:https://ollama.com/library API接口:api接口 Ollama 是一个基于 Go 语言开发的简单易用的本地大语言模型运行框架。可以将其类比为 docker(同基…

CCF20220901——如此编码

CCF20220901——如此编码 代码如下&#xff1a; #include<bits/stdc.h> using namespace std; int main() {int n,m,cnt1,a[1000],c[1000]{1};cin>>n>>m;for(int i1;i<n;i){cin>>a[i];cnt*a[i];c[i]cnt;}int b[1000]{0};for(int i1;i<n;i)b[i](…

ESP32学习笔记:WS2812B驱动

WS2812B是一款贴片RGB灯。由于采用了单总线通讯&#xff0c;所以需要特别关注下它的通讯时序。 调试细节&#xff1a; 本来以为会是一个比较简单的调试&#xff0c;结果还是花了很长时间才调试完成。 首先是关于ESP32的纳秒级延时确定&#xff0c;当时按照空指令始终调试不出来…

springboot中使用spring-cloud-starter-openfeign遇到的问题及解决参考

声明&#xff1a;本文使用的spring boot 版本是2.7.12 在springboot中使用spring-cloud-starter-openfeign遇到的一些问题&#xff1a; Caused by: java.lang.ClassNotFoundException: org.springframework.boot.context.properties.ConfigurationBeanFactoryMetadata java.…

webpack打包配置项

webpack打包配置项 在config.js 中 module.exports {publicPath: process.env.NODE_ENV production ? / : /, //静态资源目录outputDir: dist, //打包名称assetsDir: static,//静态资源&#xff0c;目录devServer: {port: port,open: false,overlay: {warnings: false,erro…

如何远程连接默认端口?

远程连接是指通过网络实现两个或多个计算机之间的连接和通信。在进行远程连接时&#xff0c;使用的端口号是一个重要的参数。端口号是计算机上正在运行的特定应用程序的标识符。每个应用程序都会监听一个或多个特定的端口号&#xff0c;以便接收来自其他计算机的连接请求&#…

Docker(四) 文件和网络

1 Dockerfile 1.1 什么是Dockerfile Dockerfile是一个文本文件&#xff0c;包含一系列命令&#xff0c;这些命令用于在 Docker 镜像中自动执行操作。Dockerfile 定义了如何构建 Docker 镜像的步骤和所需的操作。 Dockerfile 中包含的命令可以设置和定制容器的环境&#xff0c;…

满足a==1a==2

网上看到的一道JS面试题&#xff0c;觉得很有意思 觉得很有意思的原因是&#xff0c;这个式子乍看之下是有些反常识的。“a1&&a2”&#xff0c;它的意思似乎是“a在等于1的同时又等于2”&#xff0c;这时我们的第一反应可能就是不成立&#xff0c;一个变量怎么可能同时…

win10编译openssl

环境 Win10 64位 VS2022 openssl 3.3.0 nasm NASM version 2.16.01 compiled on Dec 21 2022 perl strawberry-5.38.2.2环境变量设置 perl加入到环境变量&#xff0c;略过nasm加入到环境变量vs的nmake加入到环境变量我的nmake位置如下&#xff1a; C:\Program…

kubeadm部署k8s v1.28

一、主机准备 主机硬件配置说明 作用IP地址操作系统配置k8s-master01192.168.136.55openEuler-22.03-LTS-SP12颗CPU 4G内存 50G硬盘k8s-node01192.168.136.56openEuler-22.03-LTS-SP12颗CPU 4G内存 50G硬盘k8s-node02192.168.136.57openEuler-22.03-LTS-SP12颗CPU 4G内存 50G…