更新时间:2026-06-11 GMT+08:00
分享

Kafka数据消费概述

Kafka是一个分布式的、分区的、多副本的消息发布-订阅系统,它提供了类似于JMS的特性,但在设计上完全不同,它具有消息持久化、高吞吐、分布式、多客户端支持、实时等特性,适用于离线和在线的消息消费,如常规的消息收集、网站活性跟踪、聚合统计系统运营数据(监控数据)、日志收集等大量数据的互联网服务的数据收集场景。

Kafka结构

生产者(Producer)将消息发布到Kafka主题(Topic)上,消费者(Consumer)订阅这些主题并消费这些消息。在Kafka集群上一个服务器称为一个Broker。对于每一个主题,Kafka集群保留一个用于缩放、并行化和容错性的分区(Partition)。每个分区是一个有序、不可变的消息序列,并不断追加到提交日志文件。分区的消息每个也被赋值一个称为偏移顺序(Offset)的序列化编号。

图1 Kafka结构

Kafka客户端常用脚本使用介绍

集群安装Kafka客户端后,可以使用“Kafka客户端安装路径/Kafka/kafka/bin”下的脚本与Kafka集群进行交互,实现主题的管理、消息的生产和消费等功能。

表1 Kafka客户端脚本

脚本名称

功能描述

使用指导

kafka-topics.sh

  • 创建主题
  • 罗列主题
  • 查看主题
  • 修改主题
  • 删除主题
  • 扩展分区
  • 切换主题分区的Leader Broker

创建Kafka Topic

kafka-acl.sh

  • 查看某Topic权限控制列表
  • 添加给某用户Producer权限
  • 给某用户批量添加Producer权限、
  • 删除某用户Producer权限
  • 批量删除某用户Producer权限
  • 添加给某用户Consumer权限
  • 给某用户批量添加Consumer权限
  • 删除某用户Consumer权限
  • 批量删除某用户Consumer权限

Kafka用户权限说明

kafka-delegation-tokens.sh

  • 为用户生成Token
  • 列出归属在特定用户下的所有Token信息
  • Token有效期刷新
  • 销毁Token

配置Kafka用户Token认证信息

kafka-consumer-groups.sh

  • 查看Offset保存在Kafka上的Consumer Group列表
  • 查看Offset保存在Kafka上的Consumer Group消费情况
  • 查询存储Consumer Group位移信息的__consumer_offsets分区信息

查看Kafka数据生产消费详情

kafka-balancer.sh

  • 使用--run命令执行集群均衡
  • 使用--run命令执行节点退服
  • 查看执行状态
  • 生成均衡方案
  • 清理中间状态

配置Kafka数据均衡工具

kafka-configs.sh

  • 基于Topic级别的生产和消费限流
  • 基于用户级别的生产和消费限流
  • 基于客户端级别的生产和消费限流
  • 基于用户+客户端级别的生产和消费限流
  • 查看限流信息
  • 取消限流

使用Kafka流控工具限制生产消费速度

kafka-console-producer.sh

在主题中产生消息

使用Kafka生产消费数据

kafka-console-consumer.sh

消费主题中的消息

使用Kafka生产消费数据

Kafka UI

Kafka UI提供Kafka Web服务,通过界面展示Kafka集群中Broker、Topic、Partition、Consumer等功能模块的基本信息,同时提供Kafka服务常用命令的界面操作入口。该功能作为Kafka Manager替代,提供符合安全规范的Kafka Web服务。

通过Kafka UI可以进行以下操作:

  • 支持界面检查集群状态(主题,消费者,偏移量,分区,副本,节点)
  • 支持界面执行集群内分区重新分配
  • 支持界面选择配置创建主题
  • 支持界面删除主题(Kafka服务设置了参数“delete.topic.enable = true”)
  • 支持为已有主题增加分区
  • 支持更新现有主题的配置
  • 可以为分区级别和主题级别度量标准启用JMX查询

更多关于Kafka UI操作指导,请参考登录KafkaUI界面

相关文档