当前位置: 首页 > news >正文

3.kafka常用命令

在 0.9.0.0 之后的 Kafka,出现了几个新变动,一个是在 Server 端增加了 GroupCoordinator 这个角色,另一个较大的变动是将 topic 的 offset 信息由之前存储在 zookeeper 上改为存储到一个特殊的 topic(__consumer_offsets)中。
本文测试版本:kafka_2.12-3.1.0

1.kafka

1.1 启动kafka

后台常驻方式,带上参数 -daemon,如:

/opt/apps/kafka/bin/kafka-server-start.sh -daemon /opt/apps/kafka/config/server.properties

指定 JMX port 端口启动,指定 jmx,可以方便监控 Kafka 集群

JMX_PORT=9991 /opt/apps/kafka/bin/kafka-server-start.sh -daemon /opt/apps/kafka/config/server.properties

1.2 停止 Kafka

/opt/apps/kafka/bin/kafka-server-stop.sh

2.Topic

2.1 创建 Topic

参数 --topic 指定 Topic 名,–partitions 指定分区数,–replication-factor 指定分区复本数:

/opt/apps/kafka/bin/kafka-topics.sh --create --zookeeper localhost:2181 --replication-factor 1 --partitions 1 --topic test

注意,如果配置文件 server.properties 指定了 Kafka 在 zookeeper 上的目录,则参数也要指定,否则会报无可用的 brokers(下面部分命令也有同样的情况),如:

/opt/apps/kafka/bin/kafka-topics.sh --create --zookeeper localhost:2181/kafka --replication-factor 1 --partitions 1 --topic test

2.2 列出所有 Topic

/opt/apps/kafka/bin/kafka-topics.sh --list --zookeeper localhost:2181 

2.3 查看 Topic

/opt/apps/kafka/bin/kafka-topics.sh --describe --zookeeper localhost:2181 --topic test 

2.4 增加 Topic 的 partition 数

/opt/apps/kafka/bin/kafka-topics.sh --zookeeper localhost:2181 --alter --topic test --partitions 5 

2.5 查看 topic 指定分区 offset 的最大值或最小值

time 为 -1 时表示最大值,为 -2 时表示最小值:

/opt/apps/kafka/bin/kafka-run-class.sh kafka.tools.GetOffsetShell --topic test --time -1 --broker-list 127.0.0.1:9092 --partitions 0 

2.6 删除 Topic

/opt/apps/kafka/bin/kafka-topics.sh --zookeeper localhost:2181 --topic test --delete 

3.生产消息

/opt/apps/kafka/bin/kafka-console-producer.sh --broker-list localhost:9092 --topic test

4.消费消息

从头开始

/opt/apps/kafka/bin/kafka-console-consumer.sh --bootstrap-server localhost:9092 --topic test --from-beginning

从尾部开始,必须指定分区

/opt/apps/kafka/bin/kafka-console-consumer.sh --bootstrap-server localhost:9092 --topic test --offset latest --partition 0

指定分区

/opt/apps/kafka/bin/kafka-console-consumer.sh --bootstrap-server localhost:9092 --topic test --offset latest --partition 0

取指定个数

/opt/apps/kafka/bin/kafka-console-consumer.sh --bootstrap-server localhost:9092 --topic test --offset latest --partition 0 --max-messages 1

5.消费组group

指定group

/opt/apps/kafka/bin/kafka-console-consumer.sh --bootstrap-server localhost:9092 --topic test -group test_group --from-beginning

消费者group列表

/opt/apps/kafka/bin/kafka-consumer-groups.sh --bootstrap-server localhost:9092 --list

查看group详情

/opt/apps/kafka/bin/kafka-consumer-groups.sh --bootstrap-server localhost:9092 --group test_group --describe

执行结果:

bigdatabit9@instance-kafka01:~$ /opt/apps/kafka/bin/kafka-consumer-groups.sh --bootstrap-server localhost:9092  --group vdata.data.sink.starrocks.offline --describeConsumer group 'vdata.data.sink.starrocks.offline' has no active members.GROUP                             TOPIC            PARTITION  CURRENT-OFFSET  LOG-END-OFFSET  LAG             CONSUMER-ID     HOST            CLIENT-ID
vdata.data.sink.starrocks.offline mercury-schedule 0          95              95              0               -               -               -
vdata.data.sink.starrocks.offline mercury-schedule 1          59              59              0               -               -               -
vdata.data.sink.starrocks.offline mercury-schedule 2          54              54              0               -               -               -

删除group中的topic

/opt/apps/kafka/bin/kafka-consumer-groups.sh --bootstrap-server localhost:9092 --group test_group --topic test --delete

删除group

/opt/apps/kafka/bin/kafka-consumer-groups.sh --bootstrap-server localhost:9092 --group test_group --delete

6.平衡leader

/opt/apps/kafka/bin/kafka-preferred-replica-election.sh --bootstrap-server localhost:9092

7.自带压测工具

/opt/apps/kafka/bin/kafka-producer-perf-test.sh --topic test --num-records 100 --record-size 1 --throughput 100 --producer-props bootstrap.servers=localhost:9092 
http://www.dtcms.com/a/358529.html

相关文章:

  • 元素滚动scrollIntoView
  • 2025年09月计算机二级Python选择题每日一练——第十二期
  • GD32入门到实战22--红外NEC通信协议
  • node.js ---文件读写(FS模块)
  • shell脚本第五阶段---shell函数与正则表达式
  • 机器学习时间序列算法进行随机划分数据是不合适的!
  • 一键掌控三线资源:极简 Shell 脚本实现 CPU·磁盘·内存可视化巡检
  • 鸿蒙ArkTS 核心篇-14-条件表达式(三目运算符)
  • ans1语法的一个例子nt5inf.cat
  • openEuler2403安装部署PostgreSQL17
  • 开发中使用——鸿蒙CoreSpeechKit让文字发声
  • 118、【OS】【Nuttx】【周边】效果呈现方案解析:作用域?
  • python pyqt5开发DoIP上位机【源码】
  • Spring代理的特点
  • Photoshop - Ps Camera Raw 滤镜
  • 【Python+requests】解决Python requests中的ProxyError:SSL版本错误问题详解
  • C++中的临时对象与移动语义——深入理解与实践
  • 消费 $83,用Claude 实现临床护理系统记录单(所见即所得版)
  • 拦截器Intercepter
  • 基于单片机智能垃圾桶/垃圾分类/语音垃圾桶
  • Spring MVC 参数绑定的默认行为解析
  • MySQL错误1449: The user specified as a definer (‘root‘@‘%‘) does not exist
  • MIT 6.5840 (Spring, 2024) 通关指南——Lab 1: MapReduce
  • JC系列串口通信说明
  • day45-Ansible流程控制
  • 同步/异步日志库
  • 佳易王钟表维修养护管理系统:开启钟表维修高效管理新篇章​就#软件操作教程
  • Compare With Java And Python
  • springboot 实现不同接口指定上传文件大小
  • Linux 定时器:工作原理与实现机制深入分析