kafka-__consumer_offsets

2023-10-31

__consumer_offsets

zookeeper不适合大批量的频繁写入操作。
Kafka 1.0.2将consumer的位移信息保存在Kafka内部的topic中,即__consumer_offsets主题,并
且默认提供了kafka_consumer_groups.sh脚本供用户查看consumer信息

1. 创建topic “tp_test_01

 kafka-topics.sh --zookeeper node1:2181/myKafka --create --topic tp_test_01 --partitions 5 --replication-factor 1
2. 使用kafka-console-producer.sh脚本生产消息
for i in `seq 100`; do echo "hello lagou $i" >> messages.txt; done
 kafka-console-producer.sh --broker-list node1:9092 --topic tp_test_01 < messages.txt

由于默认没有指定key,所以根据round-robin方式,消息分布到不同的分区上。 (本例中生产了100条消息)

3. 验证消息生产成功
 kafka-console-producer.sh --broker-list node1:9092 --topic tp_test_01 < messages.txt
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>>>>[root@node1 ~]# kafka-run-class.sh
kafka.tools.GetOffsetShell --broker-list node1:9092 --topic tp_test_01 --time
-1
tp_test_01:2:20
tp_test_01:4:20
tp_test_01:1:20
tp_test_01:3:20
tp_test_01:0:20

结果输出表明100条消息全部生产成功!

创建一个console consumer group
kafka-console-consumer.sh --bootstrap-server node1:9092 --topic tp_test_01 --from-beginning
获取该consumer group的group id(后面需要根据该id查询它的位移信息)
kafka-consumer-groups.sh --bootstrap-server node1:9092 --list

输出: console-consumer-49366 (记住这个id!)

查询__consumer_offsets topic所有内容

注意:运行下面命令前先要在consumer.properties中设置exclude.internal.topics=false

kafka-console-consumer.sh --topic __consumer_offsets --bootstrap-server node1:9092 --formatter "kafka.coordinator.group.GroupMetadataManager\$OffsetsMessageFormatter" --
consumer.config config/consumer.properties --from-beginning

默认情况下__consumer_offsets有50个分区,如果你的系统中consumer group也很多的话,那么这个命令的输出结果会很多

算指定consumer group在__consumer_offsets topic中分区信息

这时候就用到了第5步获取的group.id(本例中是console-consumer-49366)。Kafka会使用下面公式
计算该group位移保存在__consumer_offsets的哪个分区上:
Math.abs(groupID.hashCode()) % numPartitions
在这里插入图片描述
对应的分区=Math.abs(“console-consumer-49366”.hashCode()) % 50 = 19,即
__consumer_offsets的分区19保存了这个consumer group的位移信

获取指定consumer group的位移信息

kafka-simple-consumer-shell.sh --topic __consumer_offsets --partition 19 --broker-list node1:9092 --formatter "kafka.coordinator.group.GroupMetadataManager\$OffsetsMessageFormatter"

在这里插入图片描述

该consumer group果然保存在分区11上,且位移信息都是对的(这里的位移信息是已消
费的位移,严格来说不是第3步中的位移。由于我的consumer已经消费完了所有的消息,所以这里的位
移与第3步中的位移相同)。另外,可以看到__consumer_offsets topic的每一日志项的格式都是:
[Group, Topic, Partition]::[OffsetMetadata[Offset, Metadata], CommitTime, Exp

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

kafka-__consumer_offsets 的相关文章

  • GB2312编码规则与代码实现

    GB2312编码范围 A1A1 FEFE 其中汉字编码范围 B0A1 F7FE 汉字编码 第一字节0xB0 0xF7 对应区号 16 87 第二个字节0xA1 0xFE 对应位号 01 94 GB2312编码是第一个汉字编码国家标准 是由中

随机推荐

  • BaseAdapter几个重载方法介绍isEnabled,getViewTypeCount ,getItemViewType

    http blog csdn net nullreference article details 7912588 public boolean isEnabled int position 如果列表的一项item是separator 充当分
  • Redisson Map踩坑姿势

    使用Java的Redisson客户端时 踩了一些坑 分享再次 供大家参考 因此引发的一次故障及排查过程参见 记一次线上 内存泄露 故障 RMapCache的坑 RMapCache的坑要从Redisson中Map结构的元素淘汰机制说起 详见
  • (python)牛客网(华为机试一)——入门

    本博客为博主解题的部分记录 由于均为自己写的 所以答案并非最优解 有很多地方可以优化 其他题解合集 python 牛客网 华为机试二 简单 python 牛客网 华为机试三 中等 python 牛客网 华为机试四 较难 题目 HJ17 取近
  • c++模板与泛型编程

    函数模板 template
  • git clone弹出登录验证框 登录无效 -Windows环境

    git篇 git clone弹出登录验证框 登录无效 Windows环境 在这里插入图片描述 使用git clone下载代码的时候 弹出github登录界面 确认账户密码正确的情况下 依旧重复弹出 原因是Github 禁用了TLS v1 0
  • 他98年的,我玩不过他...

    现在的小年轻真的卷得过分了 前段时间我们公司来了个98年的 工作没两年 跳槽到我们公司起薪18K 都快接近我了 后来才知道人家是个卷王 从早干到晚就差搬张床到工位睡觉了 最近和他聊了一次天 原来这位小老弟家里条件不太好 一大家子指望他一个人
  • LeetCode 之 剑指 Offer 24. 反转链表(Java)

    文章目录 LeetCode 之 剑指 Offer 24 反转链表 Java 一 题目 二 解题思路 三 代码 LeetCode 之 剑指 Offer 24 反转链表 Java 一 题目 剑指 Offer 24 反转链表 定义一个函数 输入一
  • 大数据处理框架MapReduce

    大数据处理框架MapReduce是一种用于处理大规模数据集的编程模型和计算框架 它能够将大规模数据集分解为多个小的数据块 并在分布式计算环境中进行并行处理 MapReduce采用了一种简单而有效的数据处理模式 由两个主要的阶段组成 Map阶
  • Sublime Text 3 装了Anaconda 写Python代码出现框框的解决办法

    Sublime Text 3代码提示插件Anaconda下载 http damnwidget github io anaconda carousel features 安装后写代码出现白框 光标移到白框行 下方状态栏里可以看到错误信息 可见
  • 80.带权的无向图

    带权的无向图 include
  • 如何用GPT轻松搞定一篇毕业论文。

    大家好 我是五竹 心血来潮整理了一份手册 ChatGPT学习指南 并且将为小白们持续更新和GPT相关的资源和教程 专注于打造一部最好的GPT入门指南 欢迎大家转发 收藏 点赞支持 谨防失联 下面 我将如何使用GPT写论文的步骤分享给大家 1
  • 怎么把半角引号替换成全角_巧妙批量互换全角与半角双引号

    工作中时常会遇到使用英文标点符号的文章 如图 2 38所示 为了规范文件编排 通常需要将所有的英文标点符号转换为中文标点符号 即达到如图 2 39所示的效果 使用查找和替换功能可以快速完成这一工作 下面以替换半角双引号为例进行介绍 图2 3
  • 3D游戏设计——UI系统

    HW9 1 血条 Health Bar 的预制设计 具体要求如下 分别使用 IMGUI 和 UGUI 实现 使用 UGUI 血条是游戏对象的一个子元素 任何时候需要面对主摄像机 分析两种实现的优缺点 给出预制的使用方法 IMGUI 使用一个
  • Python如何使用Any和All?代码示例和解析

    Any和All是python中提供的两个内置插件 用于连续的And Or Any 如果任何一项为True 则返回true 如果为空或全部为假 则返回False 可以将任何内容视为对提供的可迭代对象进行的一系列OR操作 它将执行短路 即一旦知
  • 单向链表(c/c++)

    链表是一种常见的数据结构 其中运用到了结构体指针 链表可以实现动态存储分配 换而言之 链表是一个功能强大的数组 可以在某个节点定义多种数据类型 可以实现任意的添加 删除 插入节点等 废话结束 前置知识 地址 结构体 malloc函数与循环选
  • Linux图形化界面安装

    点击创建新的虚拟机 选择自定义模式然后点击下一步 红色框内是根据自身电脑选择的 一般为默认的就行 然后点击下一步 选择一个镜像文件 选择安装到的路径还有虚拟机的名称 默认就行 也是默认 电脑配置好的话可以适当增加 根据需求选择不同的网络类型
  • 我与世界杯足球那些事——世界杯征文

    征文活动链接 https bbs csdn net topics 609601920 目录 第一次了解世界杯 第一次观看世界杯 世界杯主题曲 我最热爱的球员 今年世界杯 预测冠军 第一次了解世界杯 提起世界杯 我可能了解的比较晚一些 是在2
  • 【win11+Visual Studio 2019 配置 PCL 1.12.1 的经验总结分享】

    点云pc库的下载与安装参考另外一篇文章 链接 https blog csdn net weixin 47869094 article details 131270772 spm 1001 2014 3001 5501 各种教程里面这都很好
  • mysql-connector-java与mysql版本的对应

    记录下mysql connector java与mysql版本的对应关系 已方便以后参考 这是最新版本对应 时间 2017年5月23日 官网文档地址 https dev mysql com doc connector j 5 1 en co
  • kafka-__consumer_offsets

    consumer offsets zookeeper不适合大批量的频繁写入操作 Kafka 1 0 2将consumer的位移信息保存在Kafka内部的topic中 即 consumer offsets主题 并 且默认提供了kafka co