Kafka3.0.0版本——消费者(offset的默认维护位置)

目录

一、offset的默认维护位置

1.1、offset的默认维护位置概述

  • Kafka0.9版本之前,consumer默认将offset保存在Zookeeper中。
  • 从Kafka0.9版本开始,consumer默认将offset保存在Kafka一个内置的topic中,该topic为__consumer_offsets
  • __consumer_offsets 主题里面采用 key 和 value 的方式存储数据。key 是 group.id+topic+分区号,value 就是当前 offset 的值。每隔一段时间,kafka 内部会对这个 topic进行compact,也就是每个 group.id+topic+分区号就保留最新数据。
  • __consumer_offsets 为 Kafka 中的 topic,那就可以通过消费者进行消费。

1.2、offset的默认维护位置图解

二、消费者offset的案例

  • 在配置文件 config/consumer.properties 中添加配置 exclude.internal.topics=false,默认是 true,表示不能消费系统主题。为了查看该系统主题数据,所以该参数修改为 false。

  • 重启kafka服务。

  • 采用命令行方式,创建一个新的 topic。

    java 复制代码
    bin/kafka-topics.sh --bootstrap-server 192.168.136.27:9092 --create --partitions 2 --replication-factor 2 --topic offsetTopic
  • 启动生产者往 offsetTopic 生产数据。

    java 复制代码
    bin/kafka-console-producer.sh  --bootstrap-server 192.168.136.27:9092 --topic offsetTopic
  • 启动消费者消费 offsetTopic 数据。
    注意:指定消费者组名称,更好观察数据存储位置(key 是 group.id+topic+分区号)。

    java 复制代码
    bin/kafka-console-consumer.sh  --bootstrap-server 192.168.136.27:9092 --topic offsetTopic --group test
  • 查看消费者消费主题__consumer_offsets。

    java 复制代码
    bin/kafka-console-consumer.sh --topic __consumer_offsets  --bootstrap-server  192.168.136.29:9092  --consumer.config  config/consumer.properties  --formatter "kafka.coordinator.group.GroupMetadataManager\$OffsetsMessageFormatter" --from-beginning


相关推荐
bing_15812 小时前
kafka 消费者组的概念是什么?它是如何实现消息的点对点和发布/订阅模式?
分布式·kafka
会飞的架狗师13 小时前
【Kafka系列】第三篇| 在哪些场景下会选择使用 Kafka?
kafka
简单点了1 天前
Docker部署kafka实操+Java中访问
docker·容器·kafka
xiep14383335101 天前
Rocky Linux 10 部署 Kafka 集群
linux·运维·kafka
博一波2 天前
【车联网kafka】Kafka核心架构与实战经验(第三篇)
分布式·架构·kafka
Lemon程序馆2 天前
Kafka | 集群部署和项目接入
后端·kafka
老四敲代码3 天前
Kafka 生产者与消费者分区策略全解析:从原理到实践
分布式·kafka
会飞的架狗师3 天前
【Kafka系列】第二篇| Kafka 的核心概念、架构设计、底层原理
分布式·kafka
ClouGence3 天前
构建秒级响应的实时数据架构
数据库·kafka
武子康3 天前
大数据-64 Kafka 深入理解 Kafka 分区与重分配机制:高并发与高可用的核心 实机测试
大数据·后端·kafka