跟我学Kafka:Kafka消费组运维详解

作为一个Kafka初学者,需要快速成长,承担维护公司Kafka的重任,对Kafka的学习,我按照三步走策略:

  • 阅读Kafka相关书籍
  • 从运维实战的角度学习Kafka
  • 阅读源码,体系化,精细化掌握其实现原理

本文属于学习的第二阶段:[从运维实战的角度学习Kafka],本文重点介绍kafka-consumer-groups运维命令的使用,从运维、使用驱动对消费组的了解。

1、Kafka 消费组运维命令的基本使用

选项 类型 详细说明
–delete 命令 删除消费组,消费组删除后,其对应的消费位点也会被删除,
该命令无法删除在线的消费组(有客户端连接)
–list 命令 查询所有消费组(列表)
–describe 命令 查看消费组详情
–reset-offsets 命令 重置消费组位点
–bootstrap-server 选项 指定kafka集群的地址
–members 选项 在–describe时生效,用于显示一个消费组的客户端信息,不显示分区级别
–state 选项 在–describe时生效,用于显示消费组的状态,主要包括所在
的协调器、分区负载算法等。
–timeout 选项 超时时间,单位为ms,默认为5000。
–topic 选项 指定本次操作的主题、分区信息,Kafka删除订阅关系或重置位点时
支持只重置部分主题的部分分区,其格式为:主题:分区列表,示例:
“topic1:0,1,2”,
–verbose 选项 输出一些更详细的信息,可与–offsets --members --state结合使用
–all-topics 选项 重置位点(–reset-offsets)时作用域为该消费组所订阅的所有主题。
–by-duration 选项 重置位点到距离当前时间指定间隔的位移处,格式 ,PnDTnHnMnS,例
重置30分钟之前,格式为PT0H30M0S
–to-current 选项 重置到当前时间所代表的位点
–to-latest 选项 重置到最大位点
–to-datetime 选项 重置大于指定时间所代表的位点最小值,格式为’YYYY-MM-DDTHH:mm:SS.sss’
–to-offset 选项 重置到指定位点
–to-earliest 选项 重置到最小位点
–shift-by 选项 把位点重置到到当前位移 + N 处,N 可以是负数, 表示向前移动
–dry-run 选项 只显示结果,不真正执行,感觉是模拟执行
–execute 选项 执行真正的位点重置,如果不带该参数,则不会真正执行位点重置
–export 选项 将位点重置计划导出到文件
–from-file 选项 指定位点重置计划,该文件由–export参数生成

接下来对一些要点做一个简单的说明与举例。

1.1 --members 显示消费组成员

在使用–describe选项查看一个消费组信息时会详细显示各个分区的消费情况,而加上–members类似一个分组,以客户端为维度的汇总信息,如下图所示:
跟我学Kafka:Kafka消费组运维详解_第1张图片

1.2 --state 显示消费组状态

该选项主要用于显示消费组的状态,使用示例如下图所示:
跟我学Kafka:Kafka消费组运维详解_第2张图片
其列说明如下:

  • COORDINATOR (ID)
    该消费组的控制协调器,例如协调分区重平衡等操作,不同的消费组的协调器所在的Broker不同。

  • ASSIGNMENT-STRATEGY
    分区负载算法,目前Kafka支持Rrange与RoundRobin两种分配上算法,默认为Range,其含义如下图所示:
    跟我学Kafka:Kafka消费组运维详解_第3张图片

  • State
    消费者状态,主要包括Dead, Stable(稳定状态,可消费消息), CompletingRebalance(正在重平衡), PreparingRebalance(准备重平衡), empty(所有消费不在线)

  • MEMBERS
    成员个数。

1.2 --reset-offsets 重置消费位点

重置消费位点是kafka-consumer-groups的重点功能,我们对常用功能进行演示,只有操作,才能记忆深刻
在这里插入图片描述
Kafka的重置位点需要先停掉所有的消费者。
跟我学Kafka:Kafka消费组运维详解_第4张图片
执行真正的位点重置需要加上 --execute选项,在真正执行之前,可以用–dry-run模拟执行。

2、总结

在Kafka中,消费组是自动创建的,并且kafka中的消费组并没有提供类似RocketMQ的广播消费模式,也没Topic那么多的运维属性,其实也可以理解,topic是负责具体的数据存储,而消费组只是拉取数据进行处理。


好了,本文就介绍到这里了,一键三连(关注、点赞、留言)是对我最大的鼓励

掌握一到两门java主流中间件,是敲开BAT等大厂必备的技能,送给大家一个Java中间件学习路线,助力大家实现职场的蜕变。

Java进阶之梯,成长路线与学习资料,助力突破中间件领域

最后分享笔者一个硬核的RocketMQ电子书,您将获得千亿级消息流转的运维经验。
在这里插入图片描述
获取方式:私信回复RMQPDF即可获取。

个人网站:https://www.codingw.net

你可能感兴趣的:(Kafka,kafka)