安装好JDK,配置好JAVA_HOME一系列。在命令行输入java -version出现下面的截图即可:
注意:(1)默认安装的jdk在C:\Program Files\Java下的,因为有空格,会影响kafka的使用,要把它转移到一个无中文无空格的目录地址下;(2)现在新一点kafka版本都需要java 1.8的,这个要和kafka版本对应。
官网下载地址
下载界面大致如上,每个版本有两种模式:Source download是下载源码的, Binary download是直接安装的。Scala的版本,没有特殊需求可以最新版本就好。点击就会进入下面的界面:
选择HTTP下面任意一个下载就好,下载完成后解压到指定目录下即可(最好没有中文和空格)。
我的目录是E:\demo\kafka_2.12-1.1.1
dataDir=/kafka_2.12-1.1.1/data
.\bin\windows\zookeeper-server-start.bat .\config\zookeeper.properties
.\bin\windows\zookeeper-server-stop.bat .\config\zookeeper.properties
官网下载地址
ZOOKEEPER_HOME E:\demo\zookeeper-3.4.13
PATH现有值后面添加 ;%ZOOKEEPER_HOME%/bin;
进入目录E:\demo\kafka_2.12-1.1.1\config,修改文件server.properties。木有目录新建目录
log.dirs=/kafka_2.12-1.1.1/logs
命令行进入目录E:\demo\kafka_2.12-1.1.1,执行下面的命令:
.\bin\windows\kafka-server-start.bat .\config\server.properties
最后出现下面的结果就是成功启动啦:(保持界面,不要关闭)
命令行进入目录:E:\demo\kafka_2.12-1.1.1\bin\windows,执行下面的命令:
kafka-topics.bat --create --zookeeper localhost:2181 --replication-factor 1 --partitions 1 --topic testTopic
出现下面的界面就是创建成功,其中testTopic就是我们创建的topic,后面会使用到。命令行就可以关闭了。
命令行进入目录:E:\demo\kafka_2.12-1.1.1\bin\windows,执行下面的命令:localhost:9092是我们kafka服务broker的地址,testTopic就是我们上面创建的topic,这个命令就是用来在testTopic下生产一条消息。
kafka-console-producer.bat --broker-list localhost:9092 --topic testTopic
回车后,会出现下面的输入框,这里是生产了一条消息“hello, kafka”,想要继续生产消息可以回车输入下一条就好。
命令行进入目录:E:\demo\kafka_2.12-1.1.1\bin\windows,执行下面的命令。其中 localhost:2181是我们zookeeper的地址, testTopic是我们要消费的主体。生产者连接kafka服务broker, 消费者连接zookeeper服务。
kafka-console-consumer.bat --zookeeper localhost:2181 --topic testTopic
回车后,两边命令行没关闭的情况下,在生产者那新增的消息,消费者这边就会实时消费展示。这个时候我们打开状态的命令行窗口有四个(zookeeper 、broker 、producer 、consumer)
1:启动zookeeper报错:����: �Ҳ��������������� Files\Java\jdk1.8.0_25\lib;C:\Programam
原因及解决方法:jdk目录有空格,把jdk重新拷贝到一个无空格和中文的目录下,重新配置JAVA_HOME的环境变量,保存后打开新的命令行再执行命令即可。
2:启动kafka服务报错:Exception in thread "main" java.lang.UnsupportedClassVersionError: kafka/Kafka :
Unsupported major.minor version 52.0
原因及解决方法:是因为jdk版本不满足要求造成的,52要求jdk版本为1.8。各个jdk版本对应的数字如下:
JDK 9 = 53, JDK 8 = 52, JDK 7 = 51, JDK 6.0 = 50, JDK 5.0 = 49,
JDK 1.4 = 48, JDK 1.3 = 47, JDK 1.2 = 46, JDK 1.1 = 45
3:kafka-console-producer.bat生产的带中文的消息,消费者取到为乱码,界面大致为:
原因及解决办法:命令行的编码格式默认是GBK(936)。在命令行输入chcp可以查看命令行的编码格式:
可以用chcp 65001来将编码格式修改为UTF-8。修改为UTF-8来生产消息,不能输入中文,输入中文就会退出。所以具体的解决办法还没找到。