Kafka 核心功能介绍和常用命令
Apache Kafka 是一个分布式流处理平台,常用于构建实时数据管道和大规模流处理应用。以下是 Kafka 的常用功能和相关命令总结:
一、Kafka 核心功能
- 发布与订阅消息
- 生产者(Producer)将消息发布到主题(Topic),消费者(Consumer)订阅主题并消费消息。
- 持久化存储
- 消息按顺序持久化存储在磁盘,支持高吞吐量和低延迟。
- 分区与水平扩展
- 每个 Topic 分为多个 Partition,支持分布式存储和并行处理。
- 消费者组(Consumer Group)
- 消费者组实现负载均衡:同一消费者组内的消费者共享消费 Partition 的消息。
- 流处理(Kafka Streams)
- 提供流处理 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
四、常见问题
- 消息堆积
- 增加消费者数量或分区数。
- 数据丢失
- 生产者配置 acks=all,消费者手动提交偏移量。
- 分区不均
- 使用自定义分区策略或调整分区数。
五、学习工具
- Kafka UI 工具:Kafka Tool、Kafdrop、Offset Explorer。
- 监控:Prometheus + Grafana、Kafka Manager。
掌握这些命令和功能后,可以高效管理 Kafka 集群和流数据任务。
上一篇:搭建 IPFS 节点服务器
下一篇:走进Maven世界