Kafka实战记录(2)-命令行操作

本文详细介绍Kafka的启动、停止流程,以及如何通过命令行管理topic,包括创建、查看、删除topic的操作步骤。同时,深入解析producer和consumer的使用方法,为初学者提供全面的Kafka实践指导。

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

目录

Kafka实战记录-目录:https://blog.youkuaiyun.com/weixin_39565597/article/details/104402046

1、启动kafka

# 启动kafka kafka-server-start.sh [-daemon] server.properties [--override property=value]*
# -daemon 是否以守护进程开启
# --override property=value 覆盖配置值,属性property改为value
[root@node1 kafka-2.2.2] ./bin/kafka-server-start.sh -daemon ./config/server.properties
# 查看进程
[root@node1 kafka-2.2.2] jps
49145 Kafka
# 关闭kafka
[root@node1 kafka-2.2.2] ./bin/kafka-server-stop.sh

2、topic主题

主题相关的命令:./bin/kafka-topics.sh
topic:主题、partition:分区
可以理解为一个topic为一条马路,马路上有多个车道(partition),各个车辆(message)进入马路后,选择一个车道,顺序驶入(append)等待绿灯(被消费)。

# 输入topic命令,查看帮助文档,可查看所有参数
[root@node1 kafka-2.2.2] ./bin/kafka-topics.sh
# 查看当前所有的topic
# --zookeeper:必传(新版本已换成--bootstrap-server node1:9092,node2:9092,node3:9092,此处是kafka的监听端口,在server.properties可配)
#            zookeeper是将数据放于zookeeper,而--bootstrap-server是将数据存于kafka的log目录
#            此处urls可以多个,实现自动的故障转移
# --list 查看列表
[root@node1 kafka-2.2.2] ./bin/kafka-topics.sh --zookeeper node1:2181,node2:2181,node3:2181 --list
# 创建topic 
# --create 说明此条命令为创建topic
# --topic hello 设置topic的名称为hello
# --partitions 2 分区数(即这条马路有多少条车道)
# --replication-factor 2 副本数,对每个分区进行备份,副本数不能大于服务器节点数量,因为副本存放在非当前节点的服务器
[root@node1 kafka-2.2.2] ./bin/kafka-topics.sh --zookeeper node1:2181,node2:2181,node3:2181 --replication-factor 2 --partitions 2  --create --topic hello
Created topic "hello".
# 查看创建的topic
# --describe 说明此条命令为查看topic
# PartitionCount:2 分区数为2
# ReplicationFactor:2 副本数为2
# Configs:配置信息
#        分区0:hello-0:副本存在于broker0和broker1,且broker0上的数据为leader
#        分区1:hello-1:副本存在于broker1和broker2,且broker1上的数据为leader
[root@node1 kafka-2.2.2] ./bin/kafka-topics.sh --zookeeper node1:2181,node2:2181,node3:2181 --describe --topic hello
Topic:hello	PartitionCount:2	ReplicationFactor:2	Configs:
	Topic: hello	Partition: 0	Leader: 0	Replicas: 0,1	Isr: 0,1
	Topic: hello	Partition: 1	Leader: 1	Replicas: 1,2	Isr: 1,2
# 查看kafka数据目录
# node1有:hello-0(主)
# node2有:hello-0、hello-1(主)
# node3有:hello-1
[root@node1 kafka-2.2.2] cd data
[root@node1 kafka-2.2.2] ls
# 删除topic(需要server.properties中设置delete.topic.enable=true,否则出现以下警告,删除也是标记删除)
# --delete 说明此条命令为删除命令
[root@node1 kafka-2.2.2] ./bin/kafka-topics.sh --delete --topic hello
Topic hello1 is marked for deletion.
Note: This will have no impact if delete.topic.enable is not set to true.

3、producer生产者

生产者相关的命令:./bin/kafka-console.producer.sh

# 查看帮助文档信息
# --broker-list <String: broker-list> 必传,broker集群节点
# --topic <String: topic> 必传,topic名称
[root@node1 kafka-2.2.2] ./bin/kafka-console.producer.sh
# 给topic为hello的主题发送消息
[root@node1 kafka-2.2.2] ./bin/kafka-console.producer.sh --broker-list node1:9092,node2:9092,node3:9092 --topic hello
>hello1

4、comsumer消费者

生产者相关的命令:./bin/kafka-console.comsumer.sh

# 查看帮助文档信息
# --bootstrap-server <String: server to    REQUIRED (unless old consumer isconnect to> 必传,新版本使用
# --zookeeper <String: urls>               REQUIRED (only when using oldconsumer) 必传,旧版本使用
# --from-beginning 		从头开始获取队列消息(由于生产者先打开,发送了hello1消息,消费者后打开,如果要获取到hello1,则需要加此参数)
[root@node1 kafka-2.2.2] ./bin/kafka-console-consumer.sh --bootstrap-server node1:9092,node2:9092,node3:9092 --from-beginning
hello1
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值