Kafka shell 基本命令

本文介绍了如何使用Kafka shell进行基本操作,包括启动Kafka、创建与管理topics、使用控制台作为producer和consumer,以及查看分区偏移量、增加分区数等。请注意,删除topic仅会移除Zookeeper中的元数据,消息文件需手动删除。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

目录

启动kafka:

bin/kafka-server-start.sh config/server.properties &

创建kafka topic

(一个叫“test”的topic,它只有一个分区,一个副本)

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

ps:(除了手动创建topic,还可以配置broker让它自动创建topic)

  • partitions设置的是topic的分区数,replication-factor设置的是topic每个分区的副本数

     - 分区数,控制topic分成多少个log。可以在创建topic的时候指定,如果没有指定则会使用配置文件中的默认数量
     - 增加分区数是可以提高kafka集群的吞吐量、但是如果分区过多则会造成服务器高延迟。
     因为分区过多会在需要的时候打开比较多的文件句柄,增加客户端的内存消耗。
     - 分区数也限制了consumer的并行度,并行consumer消息的线程数不能大于分区数。
     - 分区数也限制了producer发送消息是指定的分区。eg:创建topic时分区设置为1,
     producer发送消息时通过自定义的分区方法指定分区为2或者以上的数都会出错,这种情况下可以通过alter-partitions来增加分区数。
    
  • replication-factor:

     - replication factor控制消息保存在几个broker(服务器)上,一般情况下等于broker的个数。
     - 如果没有在创建时指定,则会使用broker(server.properties)中的default.replication.factor配置。
    

查看所有创建的topic:

bin/kafka-topics.sh --list --zookeeper Master:2181

查看指定topic信息:

bin/kafka-topics.sh --zookeeper Master:2181 --describe  --topic test

把控制台当成producer生产数据:

bin/kafka-console-producer.sh --broker-list Master:9092 --topic test

把控制台当成consumer消费数据:

bin/kafka-console-consumer.sh --zookeeper Master:2181 --topic test --from-beginning

查看topic某分区偏移量的最大或最小值:

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

增加topic分区数:

bin/kafka-topics.sh --zookeeper Master:2181  --alter --topic test --partitions 10

ps: 为test增加10个分区

删除topic(!!!慎用),只会删除zookeeper中的元数据,消息文件需要手动删除:

bin/kafka-run-class.sh kafka.admin.DeleteTopicCommand --zookeeper Master:2181 --topic test

获取节点的kafka信息:

bin/kafka-topics.sh --describe --zookeeper Master:2181 --topic my-replicated-topic
下面是输出结果:
Topic:my-replicated-topic       PartitionCount:1        ReplicationFactor:3     Configs:
Topic: my-replicated-topic      Partition: 0    Leader: 1       Replicas: 1,2,0 Isr: 1,2,0
其中:第一行是对所有分区的一个描述,然后每个分区都会对应一行,因为我们只有一个分区所以下面就只加了一行
leader:负责处理消息的读和写,leader是从所有节点中随机选择的。
replicas:列出了所有的副本节点,不管节点是否在服务中。
isr:正在服务中的节点。

这里写图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值