消费者要从头开始消费某个topic的全量数据,需要满足2个条件(spring-kafka):

(1)使用一个全新的"group.id"(就是之前没有被任何消费者使用过); (2)指定"auto.offset.reset"参数的值为earliest; 

对应的spring-kafka消费者客户端配置参数为:

<!-- 指定消费组名 -->
<entry key="group.id" value="fg11"/>
<!-- 从何处开始消费,latest 表示消费最新消息,earliest 表示从头开始消费,none表示抛出异常,默认latest -->
<entry key="auto.offset.reset" value="earliest"/> 

注意:从kafka-0.9版本及以后,kafka的消费者组和offset信息就不存zookeeper了,而是存到broker服务器上,所以,如果你为某个消费者指定了一个消费者组名称(group.id),那么,一旦这个消费者启动,这个消费者组名和它要消费的那个topic的offset信息就会被记录在broker服务器上。

比如我们为消费者A指定了消费者组(group.id)为fg11,那么可以使用如下命令查看消费者组的消费情况:

bin/kafka-consumer-groups.sh --bootstrap-server 172.17.6.10:9092 --describe --group fg11

显示结果如下:

TOPIC   PARTITION  CURRENT-OFFSET  LOG-END-OFFSET  LAG  CONSUMER-ID                                      HOST              CLIENT-ID
friend  0          6               6               0    consumer-1-08c856a3-ae39-4f73-a2da-4de1795c6ad4  /192.168.207.127  consumer-1
friend  1          2               2               0    consumer-1-08c856a3-ae39-4f73-a2da-4de1795c6ad4  /192.168.207.127  consumer-1
friend  2          4               4               0    consumer-1-08c856a3-ae39-4f73-a2da-4de1795c6ad4  /192.168.207.127  consumer-1 

其实friend这个topic共有3个分区,消息总数为12条,其实在消费者A启动之前,这12条消息已经被其他某个组的消费者消费过了。而我们虽然为消费者A指定了一个全新的group.id为fg11,但是如果我们在启动消费者A之前,指定的"auto.offset.reset"参数的值是latest而不是earliest的话(就算你停止消费者,然后改为earliest也是没有用的),启动之后它将不会消费以前的消息,除非friend这个topic的分区中有了新的消息它才会消费。

所以一定要在消费者启动之前就保证group.id是全新的,而且要指定earliest而不是latest。

kafka消费者如何才能从头开始消费某个topic的全量相关推荐

  1. kafka消费者组消费数据问题

    前言 在上一篇的消费者代码中,里面提到了一个很重要的点,那就是在代码中必须要指明消费者组,为什么要这样呢? 这个跟kafka自身在架构设计时是有一定的关系的,通过之前的学习我们知道,kafka天生就是 ...

  2. kafka Java客户端之 consumer API 消费消息

    背景:我使用docker-compose 搭建的kafka服务 kafka的简单介绍以及docker-compose部署单主机Kafka集群 使用consumer API消费指定Topic里面的消息 ...

  3. kafka消费者源码解析

    在分析kafka消费者源码之前,我先提出以下问题,大家带着问题去看. 1.消费者如何知道需要消费的topic分区分布在集群的哪些broker上呢? 2.由于消费组内存在多个消费者消费同一topic的情 ...

  4. 深入浅出系列之 -- kafka消费者的三种语义模型

    本文主要详解kafka client的使用,包括kafka消费者的三种消费语义at-most-once,at-least-once,和exact-once message,生产者的使用等. 创建主题 ...

  5. Kafka 3.0 源码笔记(3)-Kafka 消费者的核心流程源码分析

    文章目录 前言 1. 消费者负载均衡的实现 2. 源码分析 2.1 KafkaConsumer 的初始化 2.2 KafkaConsumer 的消息拉取 2.2.1 消息拉取的准备及入口 2.2.2 ...

  6. kafka消费者 confluent_kafka

    kafka消费者--python api 之confluent-kafka 一.版本 二.需求概述 三.解决思路 四.执行 4.1 获取每个分区消费的offset信息 4.2 启动一个消费者 4.3 ...

  7. kafak消费者从头开始消费(消费者组)

    [README] 本文主要用于描述 kafka 消费者如何从头开始消费: [1]从头开始消费 1)从头开始消费,需要满足两个条件, 如下: 条件1, 使用一个全新的消费者组id: 条件2,指定 aut ...

  8. kafka auto.offset.reset设置earliest从头开始消费

    auto.offset.reset设置为earliest spring:kafka:bootstrap-servers: 192.168.?.x:9092 consumer:auto-offset-r ...

  9. 聊聊Kafka(三)Kafka消费者与消费组

    Kafka消费者与消费组 简介 消费者 概念入门 消费者.消费组 心跳机制 消息接收 必要参数配置 订阅 反序列化 位移提交 消费者位移管理 再均衡 避免重平衡 消费者拦截器 消费组管理 什么是消费者 ...

最新文章

  1. maven详解之生命周期与插件
  2. 不区分大小写比较Java_java-如何使字符串比较不区分大小写?
  3. AppCompat 22.1,Google暴走,MD全面兼容低版本
  4. 怎样用jQuery拿到select中被选中的option的值
  5. jmap之使用说明与JVM配置
  6. oracle 计算中位数,SQL 如何计算每个分组的中位数
  7. vscode不同系统的回退,前进,跳转操作
  8. [APIO2017]商旅——分数优化+floyd+SPFA判负环+二分答案
  9. 好书推荐:OpenSuse
  10. matlab meshlab,MeshLab(网格模型处理软件)下载-MeshLab官方版下载[电脑版]-PC下载网
  11. Ctrl+26字母组合快捷键,分分钟变成办公室大表哥
  12. 在线 excel 产品技术调研
  13. Codevs2491玉蟾宫
  14. i9级E52450处理器_来了!十代英特尔酷睿标压处理器,实测跑分首发
  15. 腾讯跟阿里两位王者之间的对比
  16. jdbc批量插入的4种方式【百万条数据插入只需几秒】
  17. 详解python使用金山词霸的翻译功能(调试工具断点的使用)
  18. Wireshark实践总结
  19. C#在国内这么惨的么?
  20. mac下安装centos8

热门文章

  1. 小菊的语义分割2——数据集的制作(一): ISPRS_Potsdam遥感图像数据集
  2. 我们要为马斯克的“反智事业”买单吗?
  3. bootstraptable 超多列_Bootstrap mergeCells合并单元格(多列)
  4. 良心安利Rhino犀牛 3d模型素材网站
  5. paho.mqtt.cpp库编译
  6. 电改背景下,售电公司如何利用需求侧响应模式
  7. 指数基金将嵌入百度搜索大数据 银行图谋独家代销权
  8. CCS10.2入门(一)
  9. com.sun.mail.smtp.SMTPSendFailedException:554 5.2.0 STOREDRV.Submission.Exception
  10. html连接sql基本语句,PostgreSQL 常用SQL语句