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:想了解更多相关知识,可以移步我的主页哦~

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

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

如何对Linode Windows虚拟机进行“本地”访问

大部分时候,IT运维工作都可以远程进行,只要能通过网络访问被管理的系统,就可以执行几乎所有任务。如果因为某些原因导致无法通过网络访问呢?此时可能需要亲自到达相关硬件设备旁,通过“本地访问”来排错。 如果这些硬…

python实现520表白图案

今天是520哦,作为程序员有必要通过自己的专业知识来向你的爱人表达下你的爱意。那么python中怎么实现绘制520表白图案呢?这里给出方法: 1、使用图形库(如turtle) 使用turtle模块,你可以绘制各种形状和图案…

Thinkphp内核开发盲盒商城源码v2.0 对接易支付/阿里云短信/七牛云存储

源码简介 这套系统是我从以前客户手里拿到的,100完整可用,今天测试防红链接失效了,需要修改防红API即可!前端页面展示我就不放了,懂的都懂 优点是Thinkphp开发的,二开容易。 源码图片 资源获取:Thinkphp内核开发盲盒商城源码v2.0 对接易支付/阿里云短…

苹果MacOS系统使用微软远程桌面连接Windows电脑桌面详细步骤

文章目录 前言1. 测试本地局域网内远程控制1.1 Windows打开远程桌面1.2 局域网远程控制windows 2. 测试Mac公网远程控制windows2.1 在windows电脑上安装cpolar2.2 Mac公网远程windows 3. 配置公网固定TCP地址 前言 日常工作生活中,有时候会涉及到不同设备不同操作系…

面了一个程序员,因为6休1拒绝了我

人一辈子赖以生存下去的主要就考虑三件事,职业,事业,副业,有其1-2都是很不错的。如果还没到40岁,那不妨提前想下自己可能遇到的一些情况,提前做一些准备,未雨绸缪些。 今年整体就业大环境也一般…

CDN用户平台安装说明

CDN用户平台安装说明 登录管理员系统 在”系统设置” – “高级设置” – “用户节点”中点击”添加节点” 如果所示: 节点名称 - 可以任意填写 进程监听端口 - 启动用户节点后,进程所监听的端口,通常是HTTP 80或者HTTPS 443,…

网关路由SpringCloudGateway、nacos配置管理(热更新、动态路由)

文章目录 前言一、网关路由二、SpringCloudGateway1. 路由过滤2. 网关登录校验2.1 鉴权2.2 网关过滤器2.3 登录校验2.3.1 JWT2.3.2 登录校验过滤器 3. 微服务从网关获取用户4. 微服务之间用户信息传递 三、nacos配置管理问题引入3.1 配置共享3.1.1 在Nacos中添加共享配置3.1.2 …

vue.js状态管理和服务端渲染

状态管理 vuejs状态管理的几种方式 组件内管理状态:通过data,computed等属性管理组件内部状态 父子组件通信:通过props和自定义事件实现父子组件状态的通信和传递 事件总线eventBus:通过new Vue()实例,实现跨组件通…

yolov8训练自己数据集时出现loss值为nan。

具体原因目前暂未寻找到。 解决办法 将参数amp改成False即可。 相关资料: https://zhuanlan.zhihu.com/p/165152789 https://github.com/ultralytics/ultralytics/issues/1148

人类听觉处理和语言中枢

人类听觉概述 人类听觉是指通过耳朵接收声音并将其转化为神经信号,从而使我们能够感知和理解声音信息的能力。听觉是人类五种感觉之一,对我们的日常生活和交流至关重要。 听觉是人类交流和沟通的重要工具。通过听觉,我们能够听到他人的语言…

新媒体运营十大能力,让品牌闻达天下!

" 现在新媒体蓬勃发展,很多品牌都有新媒体运营这个岗位。新媒体运营好的话,可以提高公司品牌曝光、影响力。那新媒体运营具备什么能力,才能让品牌知名度如虎添翼呢?" 信息收集能力 在移动互联网时代,信息的…

中国医学健康管理数字化发展风向标——专家共话未来趋势

随着科技的飞速发展,数字化已经成为中国医学健康管理领域的重要发展方向。 2024年5月20日由中国管理科学研究院智联网研究所、中国民族医药协会医养教育委员会、国家卫健委基层健康服务站、中国老龄事业发展基金会、中国智联网健康管理系统平台、中国医学健康管理数…

使用大模型结合Mermaid实现业务流程图快速生成

一、需求描述 在日常系统研发过程中,经常面临前期要写投标技术文档,中期要写系统概要设计、详细设计等各类文档,最耗时间的便是画一些业务流程图。随着大模型的不断普及,大模型对文字的处理越来越强,现可以找一个能简化…

Linux——进程信号(一)

1.信号入门 1.1生活中的信号 什么是信号? 结合实际红绿灯、闹钟、游戏中的"!"等等这些都是信号。 以红绿灯为例子: 一看到红绿灯我们就知道:红灯停、绿灯行;我们不仅知道它是一个红绿灯而且知道当其出现不同的状况…

半导体测试基础 - AC 参数测试

AC 测试确保 DUT 的时特性序满足其规格需求。 基本 AC 参数 建立时间(Setup Time) 建立时间指的是在参考信号(图中为 WE)发生变化(取中间值 1.5V)前,为了确保能被正确读取,数据(图中为 DATA IN)必须提前保持稳定不变的最短时间。在最小建立时间之前,数据可以随意变…

C语言游戏实战(12):植物大战僵尸(坤版)

植物大战僵尸 前言: 本游戏使用C语言和easyx图形库编写,通过这个项目我们可以深度的掌握C语言的各种语言特性和高级开发技巧,以及锻炼我们独立的项目开发能力, 在开始编写代码之前,我们需要先了解一下游戏的基本规则…

OSPF路由聚合

原理概述 与RIP不同,OSPF不支持自动路由聚合,仅支持手动路由聚合。OSPF的路由聚合有两种机制:区域间路由聚合和外部路由聚合。区域间路由聚合必须配置在ABR路由器上,指的是ABR在把与自己直接相连区域(Area&#xff09…

Dijkstra算法在《庆余年》中的应用:范闲的皇宫之旅

❤️❤️❤️ 欢迎来到我的博客。希望您能在这里找到既有价值又有趣的内容,和我一起探索、学习和成长。欢迎评论区畅所欲言、享受知识的乐趣! 推荐:数据分析螺丝钉的首页 格物致知 终身学习 期待您的关注 导航: LeetCode解锁100…

【探索数据结构】线性表之双链表

🎉🎉🎉欢迎莅临我的博客空间,我是池央,一个对C和数据结构怀有无限热忱的探索者。🙌 🌸🌸🌸这里是我分享C/C编程、数据结构应用的乐园✨ 🎈🎈&…