
# Kafka数据消费概述
Kafka是一个分布式的、分区的、多副本的消息发布-订阅系统，它提供了类似于JMS的特性，但在设计上完全不同，它具有消息持久化、高吞吐、分布式、多客户端支持、实时等特性，适用于离线和在线的消息消费，如常规的消息收集、网站活性跟踪、聚合统计系统运营数据（监控数据）、日志收集等大量数据的互联网服务的数据收集场景。
#### Kafka结构
生产者（Producer）将消息发布到Kafka主题（Topic）上，消费者（Consumer）订阅这些主题并消费这些消息。在Kafka集群上一个服务器称为一个Broker。对于每一个主题，Kafka集群保留一个用于缩放、并行化和容错性的分区（Partition）。每个分区是一个有序、不可变的消息序列，并不断追加到提交日志文件。分区的消息每个也被赋值一个称为偏移顺序（Offset）的序列化编号。
图1Kafka结构   
![](https://support.huaweicloud.com/cmpntguide-lts-mrs/zh-cn_image_0276846163.png "点击放大")
#### Kafka客户端常用脚本使用介绍
集群安装Kafka客户端后，可以使用"*Kafka客户端安装路径*/Kafka/kafka/bin"下的脚本与Kafka集群进行交互，实现主题的管理、消息的生产和消费等功能。
表1Kafka客户端脚本 
| 脚本名称                       | 功能描述                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      | 使用指导                                                                                          |
|:---|:---|:---|
| kafka-topics.sh            | - 创建主题  - 罗列主题  - 查看主题  - 修改主题  - 删除主题  - 扩展分区  - 切换主题分区的Leader Broker                                                                                                                                                                                                                                                             | [创建Kafka Topic](https://support.huaweicloud.com/cmpntguide-lts-mrs/mrs_01_24136.html)         |
| kafka-acl.sh               | - 查看某Topic权限控制列表  - 添加给某用户Producer权限  - 给某用户批量添加Producer权限、  - 删除某用户Producer权限  - 批量删除某用户Producer权限  - 添加给某用户Consumer权限  - 给某用户批量添加Consumer权限  - 删除某用户Consumer权限  - 批量删除某用户Consumer权限   | [Kafka用户权限说明](https://support.huaweicloud.com/cmpntguide-lts-mrs/mrs_01_0378.html)            |
| kafka-delegation-tokens.sh | - 为用户生成Token  - 列出归属在特定用户下的所有Token信息  - Token有效期刷新  - 销毁Token                                                                                                                                                                                                                                                                                                                                                                                                                                                                              | [配置Kafka用户Token认证信息](https://support.huaweicloud.com/cmpntguide-lts-mrs/mrs_01_1041.html)     |
| kafka-consumer-groups.sh   | - 查看Offset保存在Kafka上的Consumer Group列表  - 查看Offset保存在Kafka上的Consumer Group消费情况  - 查询存储Consumer Group位移信息的__consumer_offsets分区信息                                                                                                                                                                                                                                                                                                                                                                                                                                                                        | [查看Kafka数据生产消费详情](https://support.huaweicloud.com/cmpntguide-lts-mrs/mrs_01_24138.html)       |
| kafka-balancer.sh          | - 使用--run命令执行集群均衡  - 使用--run命令执行节点退服  - 查看执行状态  - 生成均衡方案  - 清理中间状态                                                                                                                                                                                                                                                                                                                                                                                                    | [配置Kafka数据均衡工具](https://support.huaweicloud.com/cmpntguide-lts-mrs/mrs_01_1040.html)          |
| kafka-configs.sh           | - 基于Topic级别的生产和消费限流  - 基于用户级别的生产和消费限流  - 基于客户端级别的生产和消费限流  - 基于用户+客户端级别的生产和消费限流  - 查看限流信息  - 取消限流                                                                                                                                                                                                                                                                                    | [使用Kafka流控工具限制生产消费速度](https://support.huaweicloud.com/cmpntguide-lts-mrs/mrs_01_2493086.html) |
| kafka-console-producer.sh  | 在主题中产生消息                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  | [使用Kafka生产消费数据](https://support.huaweicloud.com/cmpntguide-lts-mrs/mrs_01_0379.html)          |
| kafka-console-consumer.sh  | 消费主题中的消息                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  | [使用Kafka生产消费数据](https://support.huaweicloud.com/cmpntguide-lts-mrs/mrs_01_0379.html)          |
   
#### Kafka UI
在Kafka集群开发、运维过程中，用户需要频繁执行Topic管理、消费组监控、分区迁移等操作，使用命令行工具操作门槛高、效率低。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界面](https://support.huaweicloud.com/cmpntguide-lts-mrs/mrs_01_24135.html)。
