本文介绍kafka的安装与使用,首先安装kafka,然后通过命令行演示kafka在生产者-消费者模式下的使用,最后介绍常见的退出错误。
版权声明:本文为博主原创文章,禁止转载
作者博客:codesong.cn
created: 2019-12-05
kafka安装
下载kafka
在kafka官网下载http://kafka.apache.org/downloads,其中source download为带源码的版本,binary download为不带源码的版本。推荐下载不带源码的2.12版本。
下载后解压即可。
配置kafka
主要配置两个文件:
a. config文件夹下的zookeeper.properties中,配置zookeeper数据存储位置:
b.config文件夹下的server.properties中,配置kafka日志文件存放位置:
kafka使用演示
此部分使用命令行,演示kafka在生产者-消费者模式下发送、接收消息。
kafka在Windows下的命令在 kafka_2.12-2.3.1\bin\windows 路径下
启动zookeeper
打开命令行,进入kafka路径下,输入以下命令启动zookeeper:
E:\kafka_2.12-2.3.1>bin\windows\zookeeper-server-start.bat config\zookeeper.properties
启动kafka
新打开一个命令行窗口,进入kafka路径下,输入以下命令启动kafka:
E:\kafka_2.12-2.3.1>bin\windows\kafka-server-start.bat config\server.properties
此时进入上文配置文件设置的文件夹,可以看到zookeeper和kafka日志相应的文件。
创建生产者
kafka使用的发布-订阅模式,新打开一个命令行窗口,进入kafka路径下,新建一个主题:
E:\kafka_2.12-2.3.1\bin\windows>kafka-topics.bat --create --bootstrap-server localhost:9092 --replication-factor 1 --partitions 1 --topic test
查看当前所有主题(只有一个test):
E:\kafka_2.12-2.3.1\bin\windows>kafka-topics.bat --list --bootstrap-server localhost:9092
生产者发送消息队列:
E:\kafka_2.12-2.3.1\bin\windows>kafka-console-producer.bat --broker-list localhost:9092 --topic test
具体如下图:
创建消费者
新打开一个命令行窗口,进入kafka路径下,输入以下命令启动kafka:
E:\kafka_2.12-2.3.1\bin\windows>kafka-console-consumer.bat --bootstrap-server localhost:9092 --topic test --from-beginning
这样消费者就开始从消息队列接收生产者发送的消息:
此时在生产者窗口继续发送消息,消费者可以相应接收到。
退出错误
退出时应使用命令行关闭zookeeper和kafka,否则会出现异常:
bin\windows\zookeeper-server-stop.bat //关闭zookeeper
bin\windows\kafka-server-stop.bat //关闭kafka
- 如果忘记关闭zookeeper和kafka,当关闭命令行窗口时,就会强制关闭kafka,这种方式为暴力关闭,很可能会导致kafka无法完成对日志文件的解锁。
届时,再次启动kafka的时候,就会提示日志文件被锁,无法成功启动。 - 针对这种情况可以如此处理:将kafka日志文件全部删除,再次启动即可。
- 建议:不要暴力关闭kafka,通过命令行关闭kafka后再关闭命令行工具。
- 在Linux上部署kafka后,一般采用后台运行的方式,会避免以上问题。
以上就是kafka的安装与初步使用,实际应用时往往不会采用命令行的方式。更多命令可以参考kafka官方手册 http://kafka.apache.org/documentation