赞
踩
kafka的安装及使用需要用到ZooKeeper,所以需要提前安装搭建好ZooKeeper
ZooKeeper在Linux下载安装及部署:
我这里安装的版本:kafka_2.12-2.2.0.tgz
Kafka官网下载地址:Apache Kafka
或下载地址: Index of /apache/kafka
[root@ZhangJiakou ~]# mkdir /usr/local/kafka
[root@ZhangJiakou ~]# tar -zxvf kafka_2.12-2.2.0.tgz -C /usr/local/kafka
[root@ZhangJiakou ~]# mkdir /usr/local/kafka/kafka_2.12-2.2.0/kafka-logs
在kafka主目录下 bin/config 或 bin/config/kraft文件夹中找到 server.properties 并进行修改
[root@ZhangJiakou kafka_2.12-2.2.0]# vim bin/config/server.properties
注意:kafka在启动服务之前,在server.properties文件中要设定3个参数: broker.id、log.dirs、zookeeper.connect
- broker.id=0
-
- log.dirs=/usr/local/kafka/kafka_2.12-2.2.0/kafka-logs
-
- zookeeper.connect=localhost:2181
-
- delete.topic.enable=true
-
- advertised.listeners=PLAINTEXT://localhost:9092
delete.topic.enable=true :这段代码会对以后删除kafka中的topic有影响,这段代码在文件尾部添加上即可
listeners=PLAINTEXT://:9092 :这个命令也很重要,需要记住(这个命令在文章里先不做分析)
advertised.listeners=PLAINTEXT://自己的主机ip地址:9092:这个localhost我用的是主机ip地址
方法一:修改 profile 文件 (我使用的该方法,也推荐用这一种,两钟区别需自行查阅相关资料)
[root@ZhangJiakou ~]# vim /etc/profile
直接在最下面添加下面这些配置
- export KAFKA_HOME=/usr/local/kafka/kafka_2.12-2.2.0
- export PATH=$KAFKA_HOME/bin:$PATH
使配置生效
[root@ZhangJiakou ~]# source /etc/profile
方法二:修改 .bashrc 文件
输入命令修改环境变量
[root@ZhangJiakou ~]# vim ~/.bashrc
直接在最下面添加下面这些配置
- export KAFKA_HOME=/usr/local/kafka/kafka_2.12-2.2.0
- export PATH=KAFKA_HOME/bin:$PATH
使配置生效
[root@ZhangJiakou ~]# source ~/.bashrc
验证环境变量是否配置成功,
[root@ZhangJiakou ~]# echo $KAFKA_HOME
验证输入kafka- 后按teb键是否会自动补全
[root@ZhangJiakou ~]# kafka-
Kafka用到了Zookeeper,先开启zookeeper,再开启Kafka (依次开启)
下面用一个单实例的Zookkeeper服务,可以在命令结尾处加个&符号,这样就可以启动后离开控制台(进程守护),启动kafak命令同理
[root@ZhangJiakou kafka_2.12-2.2.0]# ./bin/zookeeper-server-start.sh config/zookeeper.properties &
[root@ZhangJiakou kafka_2.12-2.2.0]# ./bin/kafka-server-start.sh config/server.properties &
[root@ZhangJiakou kafka_2.12-2.2.0]# ./bin/kafka-topics.sh --create --zookeeper localhost:2181 --replication-factor 1 --partitions 1 --topic topic1
[root@ZhangJiakou kafka_2.12-2.2.0]# ./bin/kafka-topics.sh --list --zookeeper localhost:2181
" --zookeeper localhost:2181"是什么意思?
--zookeeper: kafka连接zookeeper的url,和server.properties文件中的配置项 zookeeper.connect=localhost:2181 一致
[root@ZhangJiakou kafka_2.12-2.2.0]# ./bin/kafka-topics.sh --describe --zookeeper localhost:2181 --topic topic1
生产消息,生产者客户端命令,在 kafka 的根目录下使用命令
[root@ZhangJiakou kafka_2.12-2.2.0]# ./bin/kafka-console-producer.sh --broker-list localhost:9092 --topic topic1
这里的 --broker-list localhost:9092 是
进入 生产消息的编辑模式,进行编辑并发送
- >hello,world
- >this is my kafka
消费消息,消费者客户端命令,在 kafka 的根目录下使用命令
[root@ZhangJiakou kafka_2.12-2.2.0]# ./bin/kafka-console-consumer.sh --bootstrap-server localhost:9092 --topic topic1 --from-beginning
消费消息如下:
- hello,world
- this is my kafka
[root@ZhangJiakou kafka_2.12-2.2.0]# ./bin/kafka-topics.sh --delete --zookeeper localhost:2181 --topic topic1
或者
[root@ZhangJiakou kafka_2.12-2.2.0]# ./bin/kafka-run-class.sh kafka.admin.DeleteTopicCommand --zookeeper 127.0.0.1:2181 --topic topic1
删除topic 补充 ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓
问题:
对 topic1 进行删除操作后,再次查看topic的时候,topic1 没有直接删除,而且后面出现了 “marked for deletion” ,只是将 topic1 标记了删除
解决:(通过查阅各种解决方案,整理了下面这种解决方案)
如果没有在kafka/config/server.properties配置:delete.topic.enable=true时,执行topic的删除命令只是把topic标记为marked for deletion,并不是真正的删除,如果此时想彻底删除,就需要登录zookeeper客户端进行删除
启动zookeeper客户端,在zookeeper根目录下使用命令:
[root@ZhangJiakou apache-zookeeper-3.5.5]# ./bin/zkCli.sh
找到topic所在的目录,在zookeeper客户端输入这个命令
ls /brokers/topics
删除需要彻底删除的 topic1,在zookeeper客户端输入这个命令
deleteall /brokers/topics/topic1
rmr 命令已经被废弃了,可以执行 deleteall 命令
可以再次查看确认一下,在zookeeper客户端输入这个命令
ls /brokers/topics
在 config/server.properties 中找到log.dirs,
删除log.dirs指定的文件目录,然后重新启动
[root@ZhangJiakou kafka_2.12-2.2.0]# ./bin/kafka-topics.sh --list --zookeeper localhost:2181
先关闭Kafka,在 kafka 的根目录下使用命令
[root@ZhangJiakou kafka_2.12-2.2.0]# ./bin/kafka-server-stop.sh
再关闭Zookeeper,在 Zookeeper 的根目录下使用命令
[root@ZhangJiakou apache-zookeeper-3.5.5]# ./bin/zkServer.sh stop
验证一下是否关闭
jps:查看当前运行的进程
jps -m:查看当前运行进程的详细信息
[root@ZhangJiakou ~]# jps
有问题,有错误及时提出来,共同进步~~
注意:在实际项目中使用,记住hostname需要配置
如何轻松在SpringBoot中正确配置并运行Kafkahttps://blog.csdn.net/Eternal_Blue/article/details/125293622
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。