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

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

文章目录

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

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

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

3. 删除消费者组`--delete`

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

5. 删除偏移量`delete-offsets`

More

日常运维 、问题排查 怎么能够少了滴滴开源的

滴滴开源LogiKM一站式Kafka监控与管控平台


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

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

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


image.png

image.png

先调用MetadataRequest拿到所有在线Broker列表

再给每个Broker发送ListGroupsRequest请求获取 消费者组数据


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

DescribeGroupsRequest


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


查看指定消费组详情--group

sh bin/kafka-consumer-groups.sh --bootstrap-server xxxxx:9090 --describe --group test2_consumer_group


查看所有消费组详情--all-groups

sh bin/kafka-consumer-groups.sh --bootstrap-server xxxxx:9090 --describe --all-groups

查看该消费组 消费的所有Topic、及所在分区、最新消费offset、Log最新数据offset、Lag还未消费数量、消费者ID等等信息

image.png

查询消费者成员信息--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

image.png

查询消费者状态信息--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

image.png

3. 删除消费者组--delete

DeleteGroupsRequest


删除消费组–delete


删除指定消费组--group

sh 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-topic

sh bin/kafka-consumer-groups.sh --reset-offsets --to-earliest --group test2_consumer_group --bootstrap-server xxxx:9090 --dry-run --all-topic

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

sh 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-topic

sh bin/kafka-consumer-groups.sh --reset-offsets --to-earliest --all-group --bootstrap-server xxxx:9090 --dry-run --all-topic

重置所有消费组中指定Topic的偏移量--topic

sh 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


image.png

image.png

--shift-by 按照偏移量增加或者减少多少个offset;正的为往前增加;负的往后退;当然这里也是匹配所有的; --shift-by 100 、--shift-by -100

--from-file 根据CVS文档来重置; 这里下面单独讲解

--from-file着重讲解一下


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


先配置cvs文档

格式为: Topic:分区号: 重置目标偏移量

test2,0,100
test2,1,200
test2,2,300

执行命令

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重置到最近

More

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


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