Kafka命令行操作

1.kafka概述

2.主题(Topic)命令行操作

Kafka 主题(Topic)是 Kafka 中用于组织和存储消息的逻辑单元 。在 Kafka 中,生产者(Producer)将消息发布到主题,消费者(Consumer)从主题中订阅消息。

创建主题(Create Topic):

  • 示例:创建一个名为 my_topic 的主题,包含 3 个分区和每个分区的副本数为 2。
scala 复制代码
   kafka-topics.sh --bootstrap-server localhost:9092 --create --topic my_topic --partitions 3 --replication-factor 2
  • bootstrap-server:指定 Kafka 集群的地址和端口。
  • create:表示创建主题的操作。
  • topic:指定要创建的主题名称。
  • partitions:指定主题的分区数。
  • replication-factor:指定每个分区的副本数。

列出所有主题(List Topics):

  • 示例:列出 Kafka 集群中所有的主题名称。
scala 复制代码
   kafka-topics.sh --bootstrap-server localhost:9092 --list

查看主题详情(Describe Topic):

  • 示例:查看名为 my_topic 的主题的详细信息,包括分区、副本分配情况等。
scala 复制代码
   kafka-topics.sh --bootstrap-server localhost:9092 --describe --topic my_topic

删除主题(Delete Topic):

  • 示例:删除名为 my_topic 的主题。
scala 复制代码
   kafka-topics.sh --bootstrap-server localhost:9092 --delete --topic my_topic

修改主题配置(Alter Topic Configuration):

  • 示例:修改名为 my_topic 的主题的最大消息字节数为 1 MB。
scala 复制代码
   kafka-configs.sh --bootstrap-server localhost:9092 --entity-type topics --entity-name my_topic --alter --add-config max.message.bytes=1048576

增加分区(Add Partitions):

  • 示例:将名为 my_topic 的主题的分区数增加到 5。
    注意:分区数只能增加,不能减少
scala 复制代码
   kafka-topics.sh --bootstrap-server localhost:9092 --alter --topic my_topic --partitions 5

查看主题的配置(View Topic Configuration):

  • 示例:查看名为 my_topic 的主题的配置信息,如副本数、清理策略等。
scala 复制代码
   kafka-configs.sh --bootstrap-server localhost:9092 --entity-type topics --entity-name my_topic --describe

查找主题的消费者(Find Consumers for Topic):

  • 示例:查找订阅了名为 my_topic 的主题的消费者组。
scala 复制代码
   kafka-consumer-groups.sh --bootstrap-server localhost:9092 --list --all-groups --topic my_topic

3.生产者(Producer)命令行操作

发送消息(Produce Messages):

  • 示例:启动一个交互式的控制台生产者,将消息发送到名为 my_topic 的主题。
scala 复制代码
   kafka-console-producer.sh --bootstrap-server localhost:9092 --topic my_topic
  • bootstrap-server:指定 Kafka 集群的地址和端口。
  • topic:指定要发送消息的目标主题。

指定消息键发送(Produce Messages with Keys):

  • 示例:启动一个交互式的控制台生产者,向名为 my_topic 的主题发送带有键的消息。
scala 复制代码
   kafka-console-producer.sh --bootstrap-server localhost:9092 --topic my_topic --property "parse.key=true" --property "key.separator=:"
  • property "parse.key=true":表示消息包含键。
  • property "key.separator=:":指定键值对中键和值的分隔符。

从文件中发送消息(Produce Messages from File):

scala 复制代码
   kafka-console-producer.sh --bootstrap-server localhost:9092 --topic my_topic < messages.txt
  • 示例:从名为 messages.txt 的文件中读取消息,并将其发送到名为 my_topic 的主题。

自定义分区器发送消息(Produce Messages with Custom Partitioner):

  • 示例:启动一个交互式的控制台生产者,并使用自定义的分区器将消息发送到名为 my_topic 的主题。
scala 复制代码
   kafka-console-producer.sh --bootstrap-server localhost:9092 --topic my_topic --property "partitioner.class=my.custom.Partitioner"
  • property "partitioner.class=my.custom.Partitioner":指定自定义的分区器类。

10.设置消息发送速率(Setting Message Sending Rate):

  • 示例:使用性能测试工具以指定的速率向名为 my_topic 的主题发送消息。
scala 复制代码
   kafka-producer-perf-test.sh --topic my_topic --throughput 100 --num-records 1000000 --record-size 100 --producer-props bootstrap.servers=localhost:9092
  • throughput:指定消息发送速率(消息/秒)。
  • num-records:指定要发送的消息总数。
  • record-size:指定每条消息的大小。

4.消费者(Consumer)命令行操作

消费消息(Consume Messages):

示例:启动一个交互式的控制台消费者,从名为 my_topic 的主题消费消息,并从起始处开始。

scala 复制代码
   kafka-console-consumer.sh --bootstrap-server localhost:9092 --topic my_topic --from-beginning
  • bootstrap-server:指定 Kafka 集群的地址和端口。
  • topic:指定要消费消息的目标主题。
  • from-beginning:从主题的起始处开始消费消息。

指定消费者组消费消息(Consume Messages with Consumer Group):

  • 示例:启动一个交互式的控制台消费者,将其添加到名为 my_group 的消费者组中,并从名为 my_topic 的主题消费消息。
scala 复制代码
   kafka-console-consumer.sh --bootstrap-server localhost:9092 --topic my_topic --group my_group
  • group:指定消费者组的名称。

消费指定分区的消息(Consume Messages from Specific Partition):

scala 复制代码
   kafka-console-consumer.sh --bootstrap-server localhost:9092 --topic my_topic --partition 0
  • partition:指定要消费消息的分区。
    示例:启动一个交互式的控制台消费者,从名为 my_topic 的主题的分区 0 消费消息。

消费指定偏移量的消息(Consume Messages from Specific Offset):

  • 示例:启动一个交互式的控制台消费者,从名为 my_topic 的主题的偏移量 1234 开始消费消息。

    kafka-console-consumer.sh --bootstrap-server localhost:9092 --topic my_topic --offset 1234

  • offset:指定要消费消息的偏移量。

消费消息并输出到文件(Consume Messages and Output to File):

  • 示例:启动一个控制台消费者,从名为 my_topic 的主题消费消息,并将消息输出到名为 output.txt 的文件中。
scala 复制代码
   kafka-console-consumer.sh --bootstrap-server localhost:9092 --topic my_topic --from-beginning > output.txt
相关推荐
爱浦路 IPLOOK8 小时前
矿山无人化作业5G专网方案:企业专网核心网络选型分析
网络·分布式·科技·5g·信息与通信
实战派K8S&DB9 小时前
如何在内网配置 TiDB 数据库 Agent
数据库·人工智能·分布式·tidb
实战派K8S&DB9 小时前
《基于 Dify + FastAPI + PyTiDB 搭建大模型驱动的 TiDB 智能运维 Agent》
运维·数据库·分布式·云原生·tidb·fastapi
小白羊丨10 小时前
Kafka任务重试、退避与失败恢复怎么做?
分布式·kafka
jyOverQ16 小时前
RabbitMQ 延迟消息怎么实现?TTL 与死信队列
分布式·后端·rabbitmq·ruby
zcmodeltech17 小时前
工程车模型多车型动作控制系统设计与实现方案——基于STM32与Modbus RTU的挖掘机、装载机、自卸车、起重机、电力工程车全场景控制方案,服务范围覆盖全国
分布式·stm32·单片机·嵌入式硬件·交互
StevenSurpass20 小时前
智能工厂场景:FastPrintAgent 分布式打印中间件落地应用方案
分布式·mqtt·http·中间件·打印·fastreport
江畔柳前堤1 天前
具身智能全景深度指南(2026年9月版):从“会聊天的AI“到“能干活的机器“
大数据·javascript·图像处理·人工智能·分布式·智慧城市·原型模式
夕除2 天前
redis--010
笔记·分布式·学习
寻求出路的程序媛2 天前
分布式 & 高性能 & 高可用 体系、学习重点、面试点
分布式·后端·面试·性能优化