【kafka 运维】 kafka-consumer-groups.sh 消费者组管理

简介: 消费者组管理 kafka-consumer-groups.sh1. 查看消费者列表--listsh bin/kafka-consumer-groups.sh --bootstrap-server xxxx:9090 --list 先调用MetadataRequest拿到所有在线Broker列表 再给每个Broker发送ListGroupsRequest请求获取 消费者组数据2. 查看消费者组详情--describe

作者石臻臻, CSDN博客之星Top5Kafka Contributornacos Contributor华为云 MVP ,腾讯云TVP, 滴滴Kafka技术专家KnowStreaming PMC)


KnowStreaming  是滴滴开源的Kafka运维管控平台, 有兴趣一起参与参与开发的同学,但是怕自己能力不够的同学,可以联系我,带你一起你参与开源!

1消费者组管理 kafka-consumer-groups.sh

1. 查看消费者列表--list

sh bin/kafka-consumer-groups.sh --bootstrap-server xxxx:9090 --list

先调用MetadataRequest拿到所有在线Broker列表 再给每个Broker发送ListGroupsRequest请求获取 消费者组数据

2. 查看消费者组详情--describe

DescribeGroupsRequest

查看消费组详情--group--all-groups

查看指定消费组详情--groupsh bin/kafka-consumer-groups.sh --bootstrap-server xxxxx:9090  --describe --group test2_consumer_group


查看所有消费组详情--all-groupssh bin/kafka-consumer-groups.sh --bootstrap-server xxxxx:9090  --describe --all-groups查看该消费组 消费的所有Topic、及所在分区、最新消费offset、Log最新数据offset、Lag还未消费数量、消费者ID等等信息

查询消费者成员信息--members

所有消费组成员信息sh bin/kafka-consumer-groups.sh  --describe  --all-groups --members --bootstrap-server xxx:9090指定消费组成员信息sh bin/kafka-consumer-groups.sh --describe   --members  --group test2_consumer_group --bootstrap-server xxxx:9090

查询消费者状态信息--state

所有消费组状态信息sh bin/kafka-consumer-groups.sh  --describe  --all-groups --state --bootstrap-server xxxx:9090指定消费组状态信息sh bin/kafka-consumer-groups.sh  --describe   --state --group test2_consumer_group --bootstrap-server xxxxx:9090

3. 删除消费者组--delete

DeleteGroupsRequest

删除消费组--delete

删除指定消费组--groupsh bin/kafka-consumer-groups.sh  --delete  --group test2_consumer_group   --bootstrap-server xxxx:9090删除所有消费组--all-groups sh bin/kafka-consumer-groups.sh  --delete  --all-groups   --bootstrap-server xxxx:9090

PS: 想要删除消费组前提是这个消费组的所有客户端都停止消费/不在线才能够成功删除;否则会报下面异常

Error: Deletion of some consumer groups failed:
* Group 'test2_consumer_group' could not be deleted due to: java.util.concurrent.ExecutionException: org.apache.kafka.common.errors.GroupNotEmptyException: The group is not empty.

4. 重置消费组的偏移量 --reset-offsets

能够执行成功的一个前提是 消费组这会是不可用状态;

下面的示例使用的参数是: --dry-run ;这个参数表示预执行,会打印出来将要处理的结果; 等你想真正执行的时候请换成参数--excute ;

下面示例 重置模式都是 --to-earliest 重置到最早的;

请根据需要参考下面 相关重置Offset的模式 换成其他模式;

重置指定消费组的偏移量 --group

重置指定消费组的所有Topic的偏移量--all-topicsh bin/kafka-consumer-groups.sh  --reset-offsets  --to-earliest --group test2_consumer_group   --bootstrap-server xxxx:9090 --dry-run --all-topic重置指定消费组的指定Topic的偏移量--topicsh bin/kafka-consumer-groups.sh  --reset-offsets  --to-earliest --group test2_consumer_group   --bootstrap-server xxxx:9090 --dry-run --topic test2

重置所有消费组的偏移量 --all-group

重置所有消费组的所有Topic的偏移量--all-topicsh bin/kafka-consumer-groups.sh  --reset-offsets  --to-earliest --all-group   --bootstrap-server xxxx:9090 --dry-run --all-topic重置所有消费组中指定Topic的偏移量--topicsh bin/kafka-consumer-groups.sh  --reset-offsets  --to-earliest --all-group   --bootstrap-server xxxx:9090 --dry-run --topic test2

--reset-offsets 后面需要接重置的模式

相关重置Offset的模式

参数 描述 例子
--to-earliest : 重置offset到最开始的那条offset(找到还未被删除最早的那个offset)
--to-current: 直接重置offset到当前的offset,也就是LOE
--to-latest 重置到最后一个offset
--to-datetime: 重置到指定时间的offset;格式为:YYYY-MM-DDTHH:mm:SS.sss; --to-datetime "2021-6-26T00:00:00.000"
--to-offset 重置到指定的offset,但是通常情况下,匹配到多个分区,这里是将匹配到的所有分区都重置到这一个值; 如果 1.目标最大offset<--to-offset, 这个时候重置为目标最大offset;2.目标最小offset>--to-offset ,则重置为最小; 3.否则的话才会重置为--to-offset的目标值; 一般不用这个 --to-offset 3465
--shift-by 按照偏移量增加或者减少多少个offset;正的为往前增加;负的往后退;当然这里也是匹配所有的; --shift-by 100--shift-by -100
--from-file 根据CVS文档来重置; 这里下面单独讲解

--from-file着重讲解一下

上面其他的一些模式重置的都是匹配到的所有分区; 不能够每个分区重置到不同的offset;不过**--from-file**可以让我们更灵活一点;

  1. 先配置cvs文档 格式为: Topic:分区号: 重置目标偏移量
test2,0,100
test2,1,200
test2,2,300
  1. 执行命令
sh bin/kafka-consumer-groups.sh  --reset-offsets   --group test2_consumer_group   --bootstrap-server xxxx:9090 --dry-run  --from-file config/reset-offset.csv

5. 删除偏移量delete-offsets

能够执行成功的一个前提是 消费组这会是不可用状态;

偏移量被删除了之后,Consumer Group下次启动的时候,会从头消费;

sh bin/kafka-consumer-groups.sh  --delete-offsets  --group test2_consumer_group2  --bootstrap-server XXXX:9090 --topic test2

相关可选参数

参数 描述 例子
--bootstrap-server 指定连接到的kafka服务; --bootstrap-server localhost:9092
--list 列出所有消费组名称 --list
--describe 查询消费者描述信息 --describe
--group 指定消费组
--all-groups 指定所有消费组
--members 查询消费组的成员信息
--state 查询消费者的状态信息
--offsets 在查询消费组描述信息的时候,这个参数会列出消息的偏移量信息; 默认就会有这个参数的;
dry-run 重置偏移量的时候,使用这个参数可以让你预先看到重置情况,这个时候还没有真正的执行,真正执行换成--excute;默认为dry-run
--excute 真正的执行重置偏移量的操作;
--to-earliest 将offset重置到最早
to-latest 将offset重置到最近

2More

Kafka专栏持续更新中...(源码、原理、实战、运维、视频、面试视频)


【kafka运维】Kafka全网最全最详细运维命令合集(精品强烈建议收藏!!!)_石臻臻的杂货铺-CSDN博客

【kafka实战】分区重分配可能出现的问题和排查问题思路(生产环境实战,干货!!!非常干!!!建议收藏)

【kafka异常】kafka 常见异常处理方案(持续更新! 建议收藏)

【kafka运维】分区从分配、数据迁移、副本扩缩容 (附教学视频)

【kafka源码】ReassignPartitionsCommand源码分析(副本扩缩、数据迁移、副本重分配、副本跨路径迁移

【kafka】点击更多....

相关文章
|
21天前
|
机器学习/深度学习 人工智能 运维
智能化运维:AI在IT管理中的应用与挑战
【6月更文挑战第12天】随着人工智能(AI)技术的不断进步,其在IT运维领域的应用也日益广泛。本文将探讨AI如何改变传统的运维模式,提升效率和准确性,并分析在实施智能化运维过程中可能遇到的技术挑战和解决方案。
155 2
|
16天前
|
人工智能 运维 监控
传统发电站的智慧化管理和智能化运维
火电站依赖化石燃料燃烧产生蒸汽驱动发电机,水电站则用水能转动水轮发电,更环保。随着能源转型,两者都在推进智慧化:通过实时监测、故障诊断、能效管理、智能调度和预防性维护,提高效率、安全性与可持续性,响应碳中和目标,构建绿色智能的现代能源体系。
151 2
|
3天前
|
机器学习/深度学习 人工智能 运维
智能运维:利用人工智能优化IT基础设施管理
【6月更文挑战第30天】随着企业对信息技术的依赖性不断增强,传统的运维管理方法已无法满足现代业务的需求。智能运维(AIOps)作为一种新兴的运维模式,通过集成大数据、机器学习和自动化技术,旨在提高运维效率,减少系统故障时间,并提升用户体验。本文将探讨智能运维的核心概念、实施步骤及其对企业IT基础设施管理的积极影响,同时也会讨论在实际应用中可能遇到的挑战与解决方案。
17 2
|
5天前
|
机器学习/深度学习 人工智能 运维
智能化运维:AI在IT管理中的应用与挑战
【6月更文挑战第28天】随着人工智能技术的飞速发展,其在IT运维领域的应用逐渐深入。本文将探讨AI技术在智能化运维中的角色,包括自动化故障诊断、预测性维护、以及安全监控等方面。同时,我们也将分析实施智能化运维时面临的技术挑战和伦理问题,旨在为读者提供一个关于如何有效整合AI技术进入IT运维实践的全面视角。
|
9天前
|
机器学习/深度学习 人工智能 运维
智能化运维:AI在IT基础设施管理中的应用
【6月更文挑战第24天】本文将深入探讨人工智能(AI)如何革新传统IT运维模式,提升效率与响应速度。通过分析AI技术在故障预测、自动化处理和安全防护等方面的应用实例,揭示其对现代IT基础设施管理的深远影响。文章旨在为读者提供一个关于AI赋能运维领域的全面视角,同时指出实施过程中可能遇到的挑战与对策。
42 5
|
14天前
|
机器学习/深度学习 数据采集 运维
智能化运维:利用机器学习优化IT基础设施管理
在数字化时代的浪潮中,企业对IT运维的要求日益提高,传统的管理模式已难以满足快速发展的需求。本文探讨了如何通过集成机器学习技术来提升IT基础设施管理的智能化水平,旨在帮助运维团队高效应对复杂挑战,保障系统的高可用性和性能。文章首先分析了当前运维面临的主要问题,随后详细介绍了机器学习在故障预测、自动化处理和安全防护方面的应用案例,并讨论了实施智能运维时可能遇到的挑战及解决策略。最终,文章强调了持续学习和适应的重要性,以及智能运维在未来IT发展中的关键作用。
|
13天前
|
机器学习/深度学习 数据采集 人工智能
智能化运维:AI在IT管理中的角色与挑战
随着人工智能技术的不断进步,智能运维(AIOps)正逐渐改变传统IT运维的面貌。本文将深入探讨AI在IT运维中的应用、面临的挑战以及未来发展趋势,为读者呈现一个全面而深入的智能运维世界。
|
12天前
|
机器学习/深度学习 人工智能 运维
智能化运维的崛起:AI在IT管理中的应用与挑战
【6月更文挑战第21天】随着人工智能(AI)技术的飞速发展,其在信息技术(IT)运维领域的应用已成为推动效率和创新的关键动力。本文将深入探讨AI如何重塑IT运维的面貌,包括自动化故障检测、预测性维护、以及智能决策支持等方面。同时,我们也将分析在实施智能化运维时所面临的技术挑战和道德考量,并提出相应的解决策略。
315 4
|
16天前
|
机器学习/深度学习 数据采集 人工智能
智能运维:AI在现代IT服务管理中的应用
【6月更文挑战第17天】随着人工智能技术的不断进步,智能运维已成为提升IT服务效率和质量的关键手段。本文将探讨如何通过集成机器学习、大数据分析等技术来优化传统运维流程,实现故障预测、自动化处理及持续的性能优化,旨在为IT专业人士提供实施智能运维的洞见与策略。
|
18天前
|
数据采集 机器学习/深度学习 人工智能
智能化运维:AI在IT管理中的应用与挑战
【6月更文挑战第15天】随着人工智能(AI)技术的飞速发展,其在IT运维领域的应用正变得日益广泛。本文将探讨AI技术如何革新传统的IT运维模式,提升效率和准确性,并分析在实施智能化运维过程中可能遇到的挑战。
171 7

热门文章

最新文章