作者 | 犀牛饲养员

责编 | 徐威龙

封面付费下载于视觉中国

本文主要列举一些 Kafka 的常用工具,以及举了一些例子来帮助理解。有需要的小伙伴,可以 Mark 起来再看。

环境

以下的操作都是基于kafka_2.11-2.2.0

工具

新建topic

bin/kafka-topics.sh --create --zookeeper 127.0.0.1:2181 --replication-factor 1 --partitions 2 --topic spring-kafka-demo2
  • replication-factor: 指定副本数量

  • partitions:指定分区

查看topic列表

/bin/kafka-topics.sh --zookeeper localhost:2181 --list

删除某个topic

/bin/kafka-topics.sh --zookeeper localhost:2181 --delete -topic spring-kafka-demo

查看有哪些消费组

./bin/kafka-consumer-groups.sh --bootstrap-server 127.0.0.1:9092 --list

老版本是指定zk的地址,类似这样:

 kafka-consumer-groups.sh --zookeeper 127.0.0.1:2181 --list

新版本使用bootstrap,这个是区别。

查看某个消费组的详情

kafka-consumer-groups.sh --new-consumer --bootstrap-server 127.0.0.1:9092  --group test-consumer-group --describe

这个是查看组名为test-consumer-group的消费组的情况。

简单对每列进行说明:

  • TOPIC:

  消费者的topic名称

  • PARTITION:

  分区数的名称

  • CURRENT-OFFSET:

  consumer group最后一次提交的offset

  • LOG-END-OFFSET:

  最后提交的生产消息offset

  • LAG

  消费offset与生产offset之间的差值

  • CONSUMER-ID

  消费者的ID编号,我们知道消费者组里面可以有最少要有一个消费者,当然也可以有多个消费者。

  • HOST

  消费者的主机IP地址。

  • CLIENT-ID

  链接的ID编号。

关于offset补充一些知识点。

kafka有个常用的设置是 auto.offset.reset,它的意义是,

该属性指定了消费者在读取一个没有偏移量的分区或者偏移量无效的情况下(因消费者长时间失效,包含偏移量的记录已经过时井被删除)该作何处理。它的默认值是 latest , 意思是说,在偏移量无效的情况下,消费者将从最新的记录开始读取数据(在消费者启动之后生成的记录)。另一个值是 earliest ,意思是说,在偏移量无效的情况下,消费者将从起始位置读取分区的记录。

这个属性有以下几个值,

  • earliest:当各分区下有已提交的offset时,从提交的offset开始消费;无提交的offset时,从头开始消费

  • latest:当各分区下有已提交的offset时,从提交的offset开始消费;无提交的offset时,消费新产生的该分区下的数据

  • none:topic各分区都存在已提交的offset时,从offset后开始消费;只要有一个分区不存在已提交的offset,则抛出异常

我要强调的是,这个设置只有在我们的消费者(或者消费者群组)在分区内找不到有效的offset时才会生效。

举个例子。

我们使用java kafka客户端来操作kafak。比如我们在消费组group1有个消费者,消费了5条消息然后节点挂了。

然后我们重启这个消费节点,那么我来问你,这个消费者会从哪里开始消费?

如果你回答根据auto.offset.reset的配置来决定那就说明你没理解我上面所说的。

正确的答案是,消费者会继续从上次挂掉的offset(kafka broker保存)那里继续消费,根本不理会auto.offset.reset。

再举个例子。

生产者在某个topic生产了一些消息,然后我们启动一个消费组group2,里面有一个消费者。

如果这个时候kafka没有这个topic消息的offset信息,那么auto.offset.reset的值就决定从哪里消费。

《原力计划【第二季】- 学习力挑战》正式开始!即日起至 3月21日,千万流量支持原创作者!更有专属【勋章】等你来挑战

推荐阅读:云原生的漏洞与威胁有哪些?云原生安全性如何?这里有你想知道的一切!
放心!没人在意你使用的是命令式编程还是声明式编程
如何基于本地语音识别,搭建一款智能聊天机器人?
编程小白模拟简易比特币系统,手把手带你写一波!(附代码) | 博文精选
3 万字 51 张图教你 CPU、内存、操作系统硬核知识!
前沿技术探秘:知识图谱构建流程及方法
真香,朕在看了!

整理了Kafka的一些常用工具,建议收藏备用!| 博文精选相关推荐

  1. 可以图片文字编辑软件有哪些?这3个工具建议收藏备用

    有没有跟我一样的小伙伴呢?出去游玩时会拍摄各种好看图片,并分享在自己的社交平台上.但久而久之感觉只发图片有些单调,如果能在图片上编辑上文字,这样在丰富内容的同时,又能让好友清楚get到我拍这张照片时的 ...

  2. vba cad 获取宏的路径_VBA批量创建文件目录及链接,建议收藏备用

    小伙伴们,之前有跟大家分享过Power Query获取文件夹内文件清单及其属性的方法[Excel快速获取文件列表及文件属性].今天教大家通过VBA代码来实现同样的功能,提取文件夹内的文件信息更加灵活, ...

  3. Oracle 数据怎么实时同步到 Kafka | 亲测干货分享建议收藏

     摘要: 很多 DBA 同学经常会遇到要从一个数据库实时同步到另一个数据库的问题,同构数据还相对容易,遇上异构数据.表多.数据量大等情况就难以同步.我自己亲测了一种方式,可以非常方便地完成 Oracl ...

  4. 套用match_再也不用伤脑筋了,分享九个可以直接套用的Excel常用公式,收藏备用...

    编辑|菲菲  来源|烂叶子Office(ID:cnlanyezi) 毫无争议,Excel已经成为日常工作中必不可少的办公软件.无论您身处哪个行业.哪个单位,几乎每天都要跟excel打交道.但是很多人对 ...

  5. Python常用库的用法介绍都给大家整理出来啦,非常实用,建议收藏

    前言 随着大数据和人工智能的发展,Python也与多种科技深深绑定. 比如自动化测试,运维,爬虫,数据分析,机器学习,金融领域,后端开发,云计算,游戏开发都有涉及. 万丈高楼平地起,Python这座大 ...

  6. 花了1个月时间,把Python库全部整理出来了,覆盖所有,建议收藏

    目录 库名称简介 文件处理 图像处理 游戏和多媒体 大数据与科学计算 人工智能与机器学习 系统与命令行 数据库 在这里还是要推荐下我自己建的Python学习群:705933274,群里都是学Pytho ...

  7. 考研数学整理错题详细攻略,建议收藏!

    转载于张宇考研数学 虽然有错题本的不一定能成为学霸,但每个学霸都有错题本!考研复习是一个长期的过程,错题的整理与复盘,对于知识的消化吸收非常重要.学会整理错题,是考研备考中的一个高分捷径. 错题本的错 ...

  8. TCP/UDP常见端口参考(超全_面试题常用_建议收藏)

    著名端口 端口号码 / 层 名称 注释 1 tcpmux TCP 端口服务多路复用 5 rje 远程作业入口 7 echo Echo 服务 9 discard 用于连接测试的空服务 11 systat ...

  9. 载winpcap4.1.1_最常用的11个电缆载流量数据表,建议收藏备用

    <0.6/1KV聚氯乙烯绝缘电力电缆载流量> <1~3芯额定电压0.6/1kv-1.8/3kv电缆载流量表> <YJV.YJY.YJV22额定电压在6/6.6/10kv电 ...

最新文章

  1. UWP Windows10开发获取设备位置(经纬度)
  2. TP-GAN 侧脸修复
  3. kotlin学习笔记——委托属性
  4. ACL20 best paper荣誉提名 | DO NOT STOP Pre-training!
  5. CSRF攻击原理与防御方法
  6. bzoj 3156: 防御准备
  7. Excel的python读写
  8. db2中TRANSLATE函数可以实现简单的正则(不属于真正的正则表达式)
  9. jenkins配置sonar并扫描C#代码
  10. 中兴事件不会对中国高科技产生什么改变
  11. wps表格l制作甘特图_如何在表格中制作甘特图(横道图)?
  12. android基于xposed框架,基于Xposed框架的模块:Android EagleEye
  13. 2022建筑架子工(建筑特殊工种)考试练习题及在线模拟考试
  14. 3.1 机器学习 --- 决策树
  15. m451dn linux驱动下载,惠普M451dn驱动下载
  16. 重构之处理IE浏览器兼容问题
  17. ie的js调试工具companion.js使用方法
  18. jenkins构建:ERROR: Error fetching remote repo ‘origin‘(hudson.plugins.git.GitException/does not point)
  19. 如何屏蔽博客园中的Google广告
  20. 一文带你彻底弄懂ES中的doc_values和fielddata

热门文章

  1. html5伪类触发机制,HTML5表单验证
  2. python定义空列表lt_Pythonlt;1gt;List
  3. java计算器流程图_帮帮忙:Java小计算器代码,及需求分析.流程图.
  4. bind blz mysql_MySQ DBAL重点剖析课程 企业级MySQL系统安全与DBA运维日常事务管理 运维DBA必备宝典...
  5. oracle如何写循环日期自增_Oracle动态创建时间分区,以及Oracle12c中快速创建自增列...
  6. 爬虫遇到路径转换的解决方案
  7. ros(6) service server编程实现
  8. NBF事件中心架构设计与实现
  9. 基于消息队列 RocketMQ 的大型分布式应用上云实践
  10. 排队五小时才能吃上一口的Popeyes,要借阿里云数据中台10年内开足1500家门店