文章目录
- 一、安装zookeeper
- 1.下载zookeeper:[zookeeper下载](https://www.apache.org/dyn/closer.cgi/zookeeper/)
- 2.添加配置文件
- 3.配置windows系统环境变量(可以百度)
- 4.随便打开一个cmd
- 二、安装kafka
- 1.下载kafka
- 2.修改config目录下的server.properties
- 三,开始运行zookeeper和kafka
- 1.运行一个zookeeper server
- 2.启动kafka 服务
- 3.运行kafka 创建topic,查看topic等
- 其他
一、安装zookeeper
1.下载zookeeper:zookeeper下载
此文使用版本:apache-zookeeper-3.6.4
2.添加配置文件
在config目录下复制一份zoo_sample.cfg文件到同级目录,然后更改名称为zoo.cfg
tickTime=2000
initLimit=10
syncLimit=5
clientPort=2181
dataDir=D:\\xxx\\apache-zookeeper-3.6.4-bin\\data
dataLogDir=D:\\xxx\\apache-zookeeper-3.6.4-bin\\log
3.配置windows系统环境变量(可以百度)
1).新建zookeeper系统变量
变量名:ZOOKEEPER_HOME
变量值:D:\xxx\apache-zookeeper-3.6.4-bin
2).添加配置path
%ZOOKEEPER_HOME%\bin
4.随便打开一个cmd
1).cmd启动zookeeper服务端运行
C:\Users\xxx>zkCli
2).cmd启动zookeeper客户端(可以不用启动,截图略)
C:\Users\xxx>zkCli
二、安装kafka
1.下载kafka
kafka 下载
此文下载的kafka版本:kafka_2.12-3.5.1
2.修改config目录下的server.properties
zookeeper.connect=localhost:2181
log.dirs=D:\\xxx\\kafka_2.12-3.5.1\\logs
server.properties配置完后,需要在kafka_2.12-3.5.1目录下建logs目录
三,开始运行zookeeper和kafka
1.运行一个zookeeper server
2.启动kafka 服务
启动服务(进到kafka安装文件目录)
.\bin\windows\kafka-server-start.bat .\config\server.properties
3.运行kafka 创建topic,查看topic等
进入解压kafka对应的盘,执行bat命令
#创建主题
.\kafka-topics.bat --create --bootstrap-server localhost:9092 --replication-factor 1 --partitions 5 --topic test
#查询主题
.\kafka-topics.bat --bootstrap-server localhost:9092 --list
#启动消费者消费消息
.\kafka-console-consumer.bat --bootstrap-server localhost:9092 --topic test --from-beginning
#启动生产者
.\kafka-console-producer.bat --broker-list localhost:9092 --topic test
总结:上面总共开启了3个cmd。zookeeper配置环境变量,在cmd中可以不指定路径,直接执行。kafka没有配置环境变量,要有路径执行。
其他
1).当向kafka中发送数据时,发送的明明是中文没有乱码,程序读取时是乱码。在排查时发现开启一个cmd 消费刚刚发送的topic数据,发现已经乱码了。下面是解决kafka中文乱码问题:
1.打开Kafka的配置文件server.properties,可以使用文本编辑器打开。
2.在文件中查找producer.encoding属性,如果没有则可以手动添加。
3.将属性值设置为所需的编码格式,例如UTF-8。
4.保存文件并重启Kafka服务。
或使用命令指定utf-8
设置完成后,使用kafka-console-producer命令发送消息时,就会使用所设置的编码格式。例如:
.\kafka-console-producer --broker-list localhost:9092 --topic test --property "producer.encoding=UTF-8"
该命令将使用UTF-8编码格式发送消息到名为test的主题。