Windows安装Kafka并打包成服务及编码格式问题处理

一、安装JAVA JDK

1、下载安装包

http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html

注意:根据32/64位操作系统下载对应的安装包

2、添加系统变量:JAVA_HOME=C:\Program Files (x86)\Java\jdk1.8.0_144

3、PATH:在现有的值后面添加“;%JAVA_HOME%\ bin”

二、安装ZooKeeper

1、 下载安装包

https://mirrors.tuna.tsinghua.edu.cn/apache/zookeeper/current/

2、 解压并进入ZooKeeper目录,笔者:D:\Kafka\zookeeper-3.4.9\conf

3、 将“zoo_sample.cfg”重命名为“zoo.cfg”

4、 打开“zoo.cfg”找到并编辑dataDir=D:\\Kafka\zookeeper-3.4.9\\tmp

5、 添加系统变量:ZOOKEEPER_HOME=D:\Kafka\zookeeper-3.4.9

6、 编辑path系统变量,添加路径:%ZOOKEEPER_HOME%\bin

7、 在zoo.cfg文件中修改默认的Zookeeper端口(默认端口2181)

8、 打开新的cmd,输入“zkServer“,运行Zookeeper

9、 命令行提示如下:说明本地Zookeeper启动成功

 

注意:不要关了这个窗口 ,Zookeeper服务不能关

三、安装Kafka

1、 下载安装包

http://kafka.apache.org/downloads

注意要下载二进制版本

 

2、 解压并进入Kafka目录,笔者:D:\Kafka\kafka_2.12-0.11.0.0

3、 进入config目录找到文件server.properties并打开

4、 找到并编辑log.dirs=D:\Kafka\kafka_2.12-0.11.0.0\kafka-logs

5、 找到并编辑zookeeper.connect=localhost:2181

6、 Kafka会按照默认,在9092端口上运行,并连接zookeeper的默认端口:2181

7、 进入Kafka安装目录D:\Kafka\kafka_2.12-0.11.0.0,按下Shift+右键,选择“打开命令窗口”选项,打开命令行,输入:

 

注意:不要关了这个窗口,启用Kafka前请确保ZooKeeper实例已经准备好并开始运行


四、测试

1、 创建TOPIC,进入Kafka安装目录D:\Kafka\kafka_2.12-0.11.0.0,按下Shift+右键,选择“打开命令窗口”选项,打开命令行

       输入:  .\bin\windows\kafka-topics.bat --create --zookeeper localhost:2181 --replication-factor 1 --partitions 1 --topic test

注意:不要关了这个窗口

2、  查看存在的TOPIC,入Kafka安装目录D:\Kafka\kafka_2.12-0.11.0.0,按下Shift+右键,选择“打开命令窗口”选项,打开命令行

        输入n\windows\kafka-topics.bat --list --zookeeper localhost:2181


已创建的TOPIC

3、 创建生产者,进入Kafka安装目录D:\Kafka\kafka_2.12-0.11.0.0,按下Shift+右键,选择“打开命令窗口”选项,打开命令行

       输入:  .\bin\windows\kafka-console-producer.bat --broker-list localhost:9092 --topic test

注意:不要关了这个窗口

3、 创建消费者,进入Kafka安装目录D:\Kafka\kafka_2.12-0.11.0.0,按下Shift+右键,选择“打开命令窗口”选项,打开命令行

       输入:  .\bin\windows\kafka-console-consumer.bat --bootstrap-server localhost:9092 --topic test --from-beginning

 


实时接收生产数据

 

 

五 、 使用NSSM将kafka封装为服务

 1、先解压好nssm这软件,然后进入 D:\nssm-2.24\win64

 2、按下Shift+右键,选择“打开命令窗口”选项,打开命令行输入  nssm install <servicename>

 3、 application path :E:\kafka_2.11-1.1.1\bin\windows\kafka-server-start.bat

 4、 startup directory : E:\kafka_2.11-1.1.1\bin\windows 上面选择后会自动选择出来

 5、 Arguments: E:\kafka_2.11-1.0.1\config\server.properties

 6、然后记得写服务名称,并点击Install service就可以了

 7、zoopkeeper服务需要先启动,亲测可用

 以下分别是zookeeper 和kafka服务参数截图

 

zookeeper服务

 

kafka服务

    

服务安装后需要到手工启动

    

 

六 、编码问题

kafka-console-producer.bat生产的带中文的消息,消费者取到为乱码,界面大致为:

原因及解决办法:命令行的编码格式默认是GBK(936)。在命令行输入chcp可以查看命令行的编码格式:

 

可以用chcp  65001来将编码格式修改为UTF-8。修改为UTF-8来生产消息

 

参考网址

    1.https://blog.csdn.net/u014088839/article/details/83146686

     2.https://www.cnblogs.com/flower1990/p/7466882.html