Kafka 核心功能介绍和常用命令

Kafka 核心功能介绍和常用命令

精选文章moguli202025-05-21 16:40:284A+A-

Apache Kafka 是一个分布式流处理平台,常用于构建实时数据管道和大规模流处理应用。以下是 Kafka 的常用功能和相关命令总结:

一、Kafka 核心功能

  1. 发布与订阅消息
  2. 生产者(Producer)将消息发布到主题(Topic),消费者(Consumer)订阅主题并消费消息。
  3. 持久化存储
  4. 消息按顺序持久化存储在磁盘,支持高吞吐量和低延迟。
  5. 分区与水平扩展
  6. 每个 Topic 分为多个 Partition,支持分布式存储和并行处理。
  7. 消费者组(Consumer Group)
  8. 消费者组实现负载均衡:同一消费者组内的消费者共享消费 Partition 的消息。
  9. 流处理(Kafka Streams)
  10. 提供流处理 API,支持实时数据转换和聚合。

二、Kafka 常用命令

1. 主题(Topic)管理

# 创建主题(指定分区和副本因子)
kafka-topics.sh --create --bootstrap-server localhost:9092 \
  --topic my-topic --partitions 3 --replication-factor 1

# 列出所有主题
kafka-topics.sh --list --bootstrap-server localhost:9092

# 查看主题详情(分区、副本、ISR)
kafka-topics.sh --describe --bootstrap-server localhost:9092 --topic my-topic

# 删除主题(需配置 delete.topic.enable=true)
kafka-topics.sh --delete --bootstrap-server localhost:9092 --topic my-topic

# 修改主题分区数
kafka-topics.sh --alter --bootstrap-server localhost:9092 \
  --topic my-topic --partitions 5

2. 生产者和消费者

# 启动生产者(写入消息到 Topic)
kafka-console-producer.sh --bootstrap-server localhost:9092 --topic my-topic

# 启动消费者(从最新位置开始消费)
kafka-console-consumer.sh --bootstrap-server localhost:9092 --topic my-topic

# 从最早的消息开始消费
kafka-console-consumer.sh --bootstrap-server localhost:9092 --topic my-topic --from-beginning

# 指定消费者组
kafka-console-consumer.sh --bootstrap-server localhost:9092 --topic my-topic --group my-group

3. 消费者组管理

# 列出所有消费者组
kafka-consumer-groups.sh --list --bootstrap-server localhost:9092

# 查看消费者组详情(偏移量、延迟等)
kafka-consumer-groups.sh --describe --bootstrap-server localhost:9092 --group my-group

# 重置消费者组偏移量(如从头消费)
kafka-consumer-groups.sh --bootstrap-server localhost:9092 --group my-group \
  --topic my-topic --reset-offsets --to-earliest --execute

4. 集群管理

# 查看 Broker 状态
kafka-broker-api-versions.sh --bootstrap-server localhost:9092

# 查看集群详情
kafka-cluster.sh --bootstrap-server localhost:9092 describe

# 查看日志文件状态
kafka-log-dirs.sh --bootstrap-server localhost:9092 --describe

5. 性能测试

# 生产者性能测试
kafka-producer-perf-test.sh --topic test --num-records 100000 \
  --record-size 1000 --throughput -1 --producer-props bootstrap.servers=localhost:9092

# 消费者性能测试
kafka-consumer-perf-test.sh --topic test --broker-list localhost:9092 \
  --messages 100000 --threads 1

三、配置文件

  • Broker 配置:server.properties
    • 关键参数:broker.id, listeners, log.dirs, zookeeper.connect
  • 生产者/消费者配置:producer.properties, consumer.properties

四、常见问题

  1. 消息堆积
  2. 增加消费者数量或分区数。
  3. 数据丢失
  4. 生产者配置 acks=all,消费者手动提交偏移量。
  5. 分区不均
  6. 使用自定义分区策略或调整分区数。

五、学习工具

  • Kafka UI 工具:Kafka Tool、Kafdrop、Offset Explorer。
  • 监控:Prometheus + Grafana、Kafka Manager。

掌握这些命令和功能后,可以高效管理 Kafka 集群和流数据任务。

点击这里复制本文地址 以上内容由莫古技术网整理呈现,请务必在转载分享时注明本文地址!如对内容有疑问,请联系我们,谢谢!
qrcode

莫古技术网 © All Rights Reserved.  滇ICP备2024046894号-2