kafka相关命令
目录
环境
操作系统:Linux
kafka版本:2.3.0(kafka_2.11-2.3.0.tgz)
zk_port 默认为 2181
,kafka_port 默认为 9092
启动
zookeeper的启动
./zkServer.sh [–config ] {start|start-foreground|stop|restart|status|print-cmd}
zookeeper启动
./zkServer.sh --config ../conf/zoo.cfg start
kafka的启动
./kafka-server-start.sh [-daemon] server.properties [–override property=value]*
./kafka-server-start.sh ../config/server.properties
查看是否启动成功
jps -l
会有 jps、zookeeper、kafka 三个进程
kafka的停止
./kafka-server-stop.sh …/config/server.properties
./zkServer.sh stop
topic
创建topic
./kafka-topics.sh --zookeeper zk_ip:zk_port --create --topic demo --partitions 10 --replication-factor 1
–zookeeper 指定 zookeeper 的 IP 地址及端口号
–partitions 指定 partition 的数量
–replication-factor 指定数据副本的数量,副本数量不能多于 broker 的数量
查看所有topic列表
./kafka-topics.sh --zookeeper zk_ip:zk_port --list
查看指定topic明细
./kafka-topics.sh --zookeeper zk_ip:zk_port --describe --topic spti-topic
从第一行可以看到topic名称,Partition数量,ReplicationFactor副本数量。
从第二行开始,显示的是每个 partition 的状况,分别表示:topic名字、partition编号、此 partition 的 leader broker 的编号、副本集合、ISR集合。
补充:AR、ISR、OSR 介绍
- 简单来说,分区中的所有副本统称为 AR (Assigned Replicas)。所有与leader副本保持一定程度同步的副本(包括leader副本在内)组成 ISR (In Sync Replicas)。 ISR 集合是 AR 集合的一个子集。消息会先发送到leader副本,然后follower副本才能从leader中拉取消息进行同步。同步期间,follow副本相对于leader副本而言会有一定程度的滞后。前面所说的 ”一定程度同步“ 是指可忍受的滞后范围,这个范围可以通过参数进行配置。于leader副本同步滞后过多的副本(不包括leader副本)将组成 OSR (Out-of-Sync Replied)由此可见,AR = ISR + OSR。正常情况下,所有的follower副本都应该与leader 副本保持 一定程度的同步,即AR=ISR,OSR集合为空
- leader副本负责维护和跟踪 ISR 集合中所有follower副本的滞后状态,当follower副本落后太多或失效时,leader副本会把它从 ISR 集合中剔除。如果 OSR 集合中所有follower副本“追上”了leader副本,那么leader副本会把它从 OSR 集合转移至 ISR 集合。默认情况下,当leader副本发生故障时,只有在 ISR 集合中的follower副本才有资格被选举为新的leader,而在 OSR 集合中的副本则没有任何机会(不过这个可以通过配置来改变)。
修改topic
增加 partition的数量(partition的数量只允许增不允许减),将 partition 增加到20:
./kafka-topics.sh --zookeeper zk_ip:zk_port --alter --topic demo --partitions 20
删除topic
删除之前,需要先将server.properties文件中的配置delete.topic.enable=true
更改一下,否则执行删除命令不会生效。
./kafka-topics.sh --zookeeper zk_ip:zk_port --describe --topic demo
Producer
Producer 生产消息
./kafka-console-producer.sh --broker-list localhost:9092 --topic demo
Consumer
Consumer 消费消息
./kafka-console-consumer.sh --bootstrap-server localhost:9092 --from-beginning --topic demo
其他参数:
–from-beginning 从第一条消息开始消费
–group 消费者组
–offset
查看所有的消费者组
./kafka-consumer-groups.sh --bootstrap-server localhost:9092 --list
查看指定消费者组明细
./kafka-consumer-groups.sh --bootstrap-server localhost:9092 --describe --group group_1
其中依次展示 group 名称、消费的 topic 名称、partition id、consumer group 最后一次提交的 offset、最后提交的生产消息offset、消息堆积的条数(消费 offset 与生产 offset 之间的差值)、当前消费 topic-partition 的 group 成员 id (不一定包含hostname)
TODO:zookeeper相关命令
查看broker状态等等
todo: kafka可视化管理工具