我一直觉得kafka是做消息的最佳选择,因为我们最关注的就是消息丢失问题,重复消费问题,性能问题,而kafka正是这方面的典范,虽然我也用过redis和其他mq做过消息。这里我想好好研究一下kafka实现ack的机制,它是怎样提交确认消息的。

1.kafka消费提交

KafkaConsumer(消费者)每次调用 poll()方法,它总是返回由生产者写入 Kafka但还没有被消费者读取过的记录, 我们因 此可以追踪到哪些记录是被群组里的哪个消费者读取的。之前已经讨论过, Kafka 不会像其他 JMS 队列那样需要得到消费者的确认,这是 Kafka 的一个独特之处。相反,消费者可以使用 Kafka来追踪消息在分区里的位置(偏移量)。

我们把更新分区当前位置的操作叫作提交。

那么消费者是如何提交偏移量的呢?消费者往一个 叫作 _consumer_offset 的特殊主题发送 消息,消息里包含每个分区的偏移量。 如果消费者一直处于运行状态,那么偏移量就没有 什么用处。不过,如果悄费者发生崩溃或者有新 的消费者加入群组,就会触发再均衡,完 成再均衡之后,每个消费者可能分配到新 的分区,而不是之前处理的那个。为了能够继续 之前的工作,消费者需要读取每个分区最后一次提交 的偏移量,然后从偏移量指定的地方 继续处理。

如果提交的偏移量小于客户端处理 的最后一个消息的偏移量 ,那么处于两个偏移量之间的 消息就会被重复处理,如图 4-6所示。

如果提交的偏移量大于客户端处理的最后一个消息的偏移量,那么处于两个偏移量之间的 消息将会丢失,如图 4-7 所示。

kafka 主动消费_Kafka ack消费确认-提交和偏移量 详解相关推荐

  1. php表单提交到数据库详解

    一般朋友们逛一些网站的时候,想使用网站或者看到更多网站里的内容,网站会要求用户进行新用户的注册,网站会把新用户的注册信息存入数据库中,需要的时候再进行提取. 这样网站就会首先创建自己的数据库和对应的表 ...

  2. php 表单提交文件大小,PHP如何通过表单直接提交大文件详解

    PHP如何通过表单直接提交大文件详解 前言 我想通过表单直接提交大文件,django 那边我就是这么干的.而对于 php 来说,我认为尽管可以设置最大上传的大小,但最大也无法超过内存大小,因为它无法把 ...

  3. 远程服务器如何创建分支,Git 创建分支提交远程分支详解

    搜索热词 Git 创建分支提交远程分支详解 1.创建本地分支 git branch 分支名,例如:git branch 2.0.1.20120806 注:2.0.1.20120806是分支名称,可以随 ...

  4. kafka 同步提交 异步_详解Kafka设计架构核心——Kafka副本机制详解

    所谓的副本机制(Replication),也可以称之为备份机制,通常是指分布式系统在多台网络互联的机器上保存有相同的数据拷贝.副本机制有什么好处呢? 1. 提供数据冗余.即使系统部分组件失效,系统依然 ...

  5. Apache Kafka-初体验Kafka(02)-Centos7下搭建单节点kafka_配置参数详解_基本命令实操

    文章目录 安装JDK 安装zookeeper 安装kafka 下载解压 配置hosts 启动kafka服务 server.properties核心配置详解 基本命令 创建主题 发送消息 消费消息 查看 ...

  6. Kafka offset 偏移量详解

    1 背景 Kafka是Consumer去拉Broker 中的数据,但是数据从何处开始拉是一个技术问题 为了解决这个问题场景,所以Kafka推出了偏移量的概念 2 offset 偏移量是什么 2.1 基 ...

  7. Kafka的工作原理和ZK在其中的作用详解

    Kafka使用zk的分布式协调服务,将生产者,消费者,消息储存(broker,用于存储信息,消息读写等)结合在一起.同时借助zk,kafka能够将生产者,消费者和broker在内的所有组件在无状态的条 ...

  8. ajax post提交数据_详解Ajax异步加载

    前言: 作为资深球迷,提起Ajax,第一反应想到的是阿贾克斯,那个曾培养出伊布,范德法特,苏亚雷斯,亨特拉尔等一众球星的荷甲著名球队. 很显然,我们今天说的Ajax,跟足球没有任何关系,我们说的是这个 ...

  9. 表单提交enctype参数详解之:application/x-www-form-urlencode和multipart/form-data

    application/x-www-form-urlencode 我们在提交表单的时候,form表单参数中会有一个enctype的参数.enctype指定了HTTP请求的Content-Type. 默 ...

最新文章

  1. gx works2 存储器空间或桌面堆栈不足_保证安全的移动空间,超高安全品质的私家车推荐...
  2. 修改react-native项目名称
  3. 帝国cms后台上传大视频上传m3u8批量上传一次多个的解决思路和方法
  4. itk下FFTW的FFT和IFFT
  5. 参加MS CRM2011深度培训课程第二天
  6. 网易云信荣获第十五届中国企业年终评选「IT行业优秀技术奖」!
  7. 指定特定的内容为首页
  8. 【渝粤题库】陕西师范大学152102 管理学原理作业(高起专)
  9. 山东省第八届 ACM 省赛 sum of power(SDUT 3899)
  10. 腾讯股价创新高:总裁刘炽平减持40万股 套现2.5亿港元
  11. 蓝桥杯 卡片换位(bfs)
  12. 去掉超链接的颜色_Word中怎么快速批量删除去掉网站超链接技巧
  13. Windows 8 Directx 开发学习笔记(十二)利用混合实现浮在水面的木箱
  14. HSF (RPC远程调用框架)
  15. python有趣的简单代码-python有趣代码
  16. 遗传算法原理与matlab,有关路径优化遗传算法原理(结合matlab代码)
  17. Http的三次握手与四次挥手的流程:SYN包--同步包 ACK包--应答包 FIN包--终止包
  18. 几点减几点怎么列算式_时间加减法怎么算
  19. 计算机文件自定义排序6,文件夹如何自定义排序
  20. 2020校招复盘——秋招不易,致敬每一位追梦者(含网易、京东等19家互联网公司后台/Server端面经)

热门文章

  1. 小白带你学---排序算法1
  2. javaweb项目发送邮件自定义发件人名称(javamail)
  3. Ubuntu桌面版添加开机启动谷歌Chrome浏览器并绝对全屏
  4. UE 在C++中生成一个基于蓝图的Actor
  5. 实验操作:Squid代理服务器应用(传统代理透明代理)--------------------------------------就整吧
  6. Unity工程打开就崩溃C:\User\ADMINI~\AppData\Local\Temp\crash_xxxxx\error.log
  7. 数据结构 实验六 图基本操作的编程实现
  8. 哇塞!清华竟然开了《摸鱼》课程!1000多学子在线摸鱼,开课老师为大一新生...
  9. 百度地图 行政区域高亮显示
  10. 【论文】行车安全智能管理系统在地方铁路的应用