跳到主要内容

第4章 Kafka基础管理

1.相关脚本

kafka自己本身自带了很多的维护脚本,每个脚本都有特定的功能,日常维护我们只要选择适合的脚本加上参数即可。这里列出常用的kafka维护脚本及作用:

服务器管理:

kafka-server-start.sh: 启动 Kafka 服务器。

kafka-server-stop.sh: 停止 Kafka 服务器。

zookeeper-server-start.sh: 启动 ZooKeeper 服务器。

zookeeper-server-stop.sh: 停止 ZooKeeper 服务器。

主题管理:

kafka-topics.sh: 创建、删除、列出或修改主题。

生产者和消费者测试:

kafka-console-producer.sh: 从命令行向 Kafka 主题发送消息。

kafka-console-consumer.sh: 从 Kafka 主题读取消息。

kafka-producer-perf-test.sh: 测试 Kafka 生产者性能。

kafka-consumer-perf-test.sh: 测试 Kafka 消费者性能。

kafka-verifiable-consumer.sh: 用于验证消费者行为。

kafka-verifiable-producer.sh: 用于验证生产者行为。

集群和配置管理:

kafka-configs.sh: 修改 broker、topic 或用户的配置。

kafka-broker-api-versions.sh: 获取 broker 支持的 API 版本。

kafka-cluster.sh: 管理 Kafka 集群的操作。

kafka-reassign-partitions.sh: 分区再分配工具。

kafka-log-dirs.sh: 列出 broker 上的 log 目录详情。

消费者组管理:

kafka-consumer-groups.sh: 管理消费者组。

安全和认证:

kafka-acls.sh: 管理 Kafka ACL。

kafka-delegation-tokens.sh: 管理委托令牌。

zookeeper-security-migration.sh: ZooKeeper 安全迁移工具。

数据管理:

kafka-delete-records.sh: 删除特定主题的记录。

kafka-dump-log.sh: 转储日志文件内容。

运维和监控:

kafka-leader-election.sh: 手动领导者选举工具。

kafka-replica-verification.sh: 验证副本一致性。

kafka-features.sh: 管理 Kafka 特性的启用与否。

kafka-metadata-shell.sh: 交互式 shell 管理元数据。

kafka-storage.sh: 管理 Kafka 存储。

数据迁移和集成:

connect-distributed.sh: 启动 Kafka Connect(分布式模式)。

connect-standalone.sh: 启动 Kafka Connect(独立模式)。

kafka-mirror-maker.sh: 旧版的镜像制作工具。

connect-mirror-maker.sh: 新版的镜像制作工具。

最重要的脚本:

**kafka-run-class.sh**: 运行 Kafka 中的任何类,其实上面所有的脚本都是调用这个脚本。

2.Topic管理操作

列出所有topic

旧版本kafka操作:

/opt/kafka/bin/kafka-topics.sh --list \
--zookeeper 10.0.0.51:2181,10.0.0.52:2181,10.0.0.53:2181

新版本kafka操作:

/opt/kafka/bin/kafka-topics.sh --list \
--bootstrap-server 10.0.0.51:9092,10.0.0.52:9092,10.0.0.53:9092

创建topic

/opt/kafka/bin/kafka-topics.sh --create  \
--bootstrap-server 10.0.0.51:9092,10.0.0.52:9092,10.0.0.53:9092 \
--topic kafka-test \
--partitions 3 \
--replication-factor 3

查看topic

/opt/kafka/bin/kafka-topics.sh --describe \
--bootstrap-server 10.0.0.51:9092,10.0.0.52:9092,10.0.0.53:9092 \
--topic kafka-test

删除topic

/opt/kafka/bin/kafka-topics.sh --delete \
--bootstrap-server 10.0.0.51:9092,10.0.0.52:9092,10.0.0.53:9092 \
--topic kafka-test

3.消息管理操作

创建topic

/opt/kafka/bin/kafka-topics.sh --create \
--bootstrap-server 10.0.0.51:9092,10.0.0.52:9092,10.0.0.53:9092 \
--partitions 3 \
--replication-factor 3 \
--topic message-test

生产者-产生消息

/opt/kafka/bin/kafka-console-producer.sh \
--broker-list 10.0.0.51:9092,10.0.0.52:9092,10.0.0.53:9092 \
--topic message-test

消费者-消费消息

/opt/kafka/bin/kafka-console-consumer.sh \
--bootstrap-server 10.0.0.51:9092,10.0.0.52:9092,10.0.0.53:9092 \
--topic message-test \
--from-beginning

查看消费组的偏移量

要查看 Kafka 中特定主题的消费偏移量,可以使用 kafka-consumer-groups.sh 工具 ,不过首先要先知道消费组的名称:

/opt/kafka/bin/kafka-consumer-groups.sh --list \
--bootstrap-server 10.0.0.51:9092,10.0.0.52:9092,10.0.0.53:9092

执行效果:

[root@db-51 /tmp]# /opt/kafka/bin/kafka-consumer-groups.sh --list \
> --bootstrap-server 10.0.0.51:9092,10.0.0.52:9092,10.0.0.53:9092
console-consumer-91172

拿到消费组后就可以查看偏移量了:

/opt/kafka/bin/kafka-consumer-groups.sh --describe \
--bootstrap-server 10.0.0.51:9092,10.0.0.52:9092,10.0.0.53:9092 \
--group=console-consumer-91172

执行效果:

[root@db-51 /tmp]# /opt/kafka/bin/kafka-consumer-groups.sh --describe \
> --bootstrap-server 10.0.0.51:9092,10.0.0.52:9092,10.0.0.53:9092 \
> --group=console-consumer-91172
GROUP TOPIC PARTITION CURRENT-OFFSET LOG-END-OFFSET LAG CONSUMER-ID HOST CLIENT-ID
console-consumer-91172 message-test 0 - 2 - console-consumer-9b0add51-a4f3-443c-943d-1b46aec4aa98 /10.0.0.52 console-consumer
console-consumer-91172 message-test 1 - 1 - console-consumer-9b0add51-a4f3-443c-943d-1b46aec4aa98 /10.0.0.52 console-consumer
console-consumer-91172 message-test 2 - 1 - console-consumer-9b0add51-a4f3-443c-943d-1b46aec4aa98 /10.0.0.52 console-consumer

3.部署kafka图形管理工具

安装部署:

#项目地址
https://github.com/dushixiang/kafka-map/

#docker启动
docker run -d \
-p 8080:8080 \
-v /opt/kafka-map/data:/usr/local/kafka-map/data \
-e DEFAULT_USERNAME=admin \
-e DEFAULT_PASSWORD=admin \
--name kafka-map \
--restart always dushixiang/kafka-map:latest

访问页面:

1728107341425-eb50ff32-102b-4b7a-a580-f0375ab1cac0.png

1728107356873-7bf4feba-1e75-4560-a469-63fc33179fb7.png

更新: 2024-10-06 13:47:13