kafka系列-入门篇之常用命令

版权声明:如您需要转载该文章,请注明原文网址 https://blog.csdn.net/camel84/article/details/81879118

前言

本文所有的操作都是在MacOS系统上使用。如果是在Linux操作系统下进行实验,使用的命令是相同的;如果是在windows操作系统下进行实验,则需要使用对应的bin/windows目录下的bat文件。


Broker

启动

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

启动kafka命令加上–daemon,那么kafka会以守护进程的方式启动

查看启动是否成功

jps -l

可以看到下图有三个进程,分别是zookeeper、jps和kafka
查看kafka进程

停止

bin/kafka-server-stop.sh config/server.properties

启动多个broker

如果像在同一台服务器启动多个broker可以复制多份config/server.propoerties文件
broker properties files

这里我复制了三份server.properties文件,这样我可以启动三个broker。在启动broker之前,需要先修改server.properties文件中的三个属性,broker.id、listeners和log.dirs,保证这三个属性不同。
这里写图片描述
现在就可以启动三个kafka broker服务了

bin/kafka-server-start.sh --daemon config/server1.properties
bin/kafka-server-start.sh --daemon config/server2.properties
bin/kafka-server-start.sh --daemon config/server3.properties

Topic

新建

bin/kafka-topics.sh --zookeeper localhost:2181 --create --topic demo --partitions 10 --replication-factor 3

–zookeeper指定zookeeper的地址和端口,–partitions指定partition的数量,–replication-factor指定数据副本的数量。也就是说,如果有100条数据,会被切分成10份,每一份有三个副本,存放在不同的partition里。
create_topic

查看所有topic列表

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

这里我一共建了三个topic
这里写图片描述

查看指定topic明细

bin/kafka-topics.sh --zookeeper localhost:2181 --desc --topic demo

从第一排可以看到topic的名称,partition数量,副本数量。使用3份副本,就是保证数据的可用性,即使有两台broker服务器挂了,也能保证kafka的正常运行。从第二排开始,表格包含了五列,显示partition的情况,分别表示:topic名称、partition编号,此partions的leader broker编号,副本存放的broker编号,同步broker编号。因为我们开启了三个broker服务,对应的broker.id分别为0、1、2,而每个partion有三个副本,所以就有把所有的broker都使用了,只不过每个partition的leader不同。
这里写图片描述
下面的demo2,我创建的时候,配置了2个副本,10个partition。可以看出每个partition的3个副本会均衡的,分布在3台broker服务器上。

bin/kafka-topics.sh --zookeeper localhost:2181 --create --topic demo2 --partitions 10 --replication-factor 2

这里写图片描述
如果读者还是没有太明白也没有关系,我会在后面的文章中详细介绍partition是如何存放的。

修改

下面命令,增加partion数量,从10个partition增加到20个

bin/kafka-topics.sh --zookeeper localhost:2181 --alter --topic demo --partitions 20

这里写图片描述
但是减少partition是不允许的。如果执行配置的partition变少,会抛出一个错误,显示partition数量只能增加
这里写图片描述

删除

删除之前,需要先将server.properties文件中的配置delete.topic.enable=true更改一下,否则执行删除命令不会生效。

bin/kafka-topics.sh --zookeeper localhost:2181 --delete --topic demo

这里写图片描述
可以看到上面的topic只是被标记删除。如果该topic还在有数据交换,那么查看topic list的时候,会显示该topic为标记删除。直到没有客户端使用该topic,才会真正的被删除。
这里写图片描述


Producer

这个比较简单,执行下面命令就可以生产数据了

bin/kafka-console-producer.sh --broker-list localhost:9092 --topic demo

Consumer

同样地这个也比较简单,执行下面命令就可以消费数据了

bin/kafka-console-consumer.sh --zookeeper localhost:2181 --topic demo

如果加上from-beginning指定从第一条数据开始消费

bin/kafka-console-consumer.sh --zookeeper localhost:2181 --topic demo --from-beginning

总结

本节主要都是kafka的常用命令,只有了解到kafka的运行原理,才能真正掌握kafka。除了这些还要一些命令如数据迁移、优化leader、查看消费组等,会在后面的文章分别讲解。

猜你喜欢

转载自blog.csdn.net/camel84/article/details/81879118