一、zookeeper下载及配置
使用zookeeper之前需要先安装JDK, 我选择的版本为免安装的,解压后配置环境变量即可,其中JDK和zookeeper的版本存在兼容问题,这个就不验证了。
下载地址:https://www.oracle.com/technetwork/java/javase/downloads/jdk12-downloads-5295953.html
选择版本:jdk-12.0.1_windows-x64_bin.zip
添加系统环境变量:
PATH环境变量中添加:
%JAVA_HOME%\bin
%JAVA_HOME%\jre\bin
打开cmd输入如下命令验证JDK环境:
java –version
javac
下载地址:http://mirror.bit.edu.cn/apache/zookeeper/
选择版本:apache-zookeeper-3.5.5-bin.tar.gz
注意是bin文件,src文件是需要自己编译的,直接运行会报错:
找不到或无法加载主类org.apache.zookeeper.server.quorum.QuorumPeerMain
上述错误其实可以拷贝一个zookeeper-3.5.5.jar文件到zookeeper目录下,如果不修改conf\zoo_sample.cfg文件名zoo.cfg还会报错,改了因为是src版本还是会出现下述错误,最后放弃这个版本:
解压复制三份,zookeeper-1、zookeeper-2、zookeeper-3,创建 data 目录存放数据,创建 log 目录存放日志;
在 data 的 zk1、zk2、zk2 目录中分别创建文件 myid,文件内容分别写入 1、2、3(注意myid文件无后缀),否则会有如下错误myid file is missing:
重命名 zookeeper-1/conf 文件下 zoo_sample.cfg => zoo.cfg,修改如下:
# 数据存放目录 dataDir=E:\\cluster_zookeeper\\data\\zk1 # 日志存放目录 dataLogDir=E:\\cluster_zookeeper\\log\\zk1 # 监听端口 clientPort=2181
# 集群配置 # server.x 分别对应myid文件的内容(每个 zoo.cfg 文件都需要添加) # 2287(通讯端口):3387(选举端口) server.1=localhost:2287:3387 server.2=localhost:2288:3388 server.3=localhost:2289:3389 |
zookeeper-2、zookeeper-3 类似 zookeeper-1 进行调整,dataDir、dataLogDir、clientPort 都需要调整:
dataDir=E:\\cluster_zookeeper\\data\\zk2 dataLogDir=E:\\cluster_zookeeper\\log\\zk2 clientPort=2182
server.1=localhost:2287:3387 server.2=localhost:2288:3388 server.3=localhost:2289:3389 |
dataDir=E:\\cluster_zookeeper\\data\\zk3 dataLogDir=E:\\cluster_zookeeper\\log\\zk3 clientPort=2183
server.1=localhost:2287:3387 server.2=localhost:2288:3388 server.3=localhost:2289:3389
|
启动 ZooKeeper
分别通过 cmd 进入每个 ZooKeeper 实例的 bin 文件夹,输入命令:
zkServer |
二、kafka下载及配置
下载地址:http://kafka.apache.org/downloads.html
选择版本:kafka_2.11-2.3.0.tgz
解压后复制出3份,kafka-1、kafka-2、kafka-3,创建 log 目录存放消息日志;
修改 kafka-1/config 文件夹下的 server.properties :
# broker 编号,集群内必须唯一 broker.id=1 # host 地址 host.name=127.0.0.1 # 端口 port=9092 # 消息日志存放地址 log.dirs=E:\\cluster_kafka\\log\\k1 # ZooKeeper 地址,多个用,分隔 zookeeper.connect=localhost:2181,localhost:2182,localhost:2183 |
kafka-2、kafka-3 类似 kafka-1 进行调整
broker.id=2 host.name=127.0.0.1 port=9093 log.dirs=E:\\cluster_kafka\\log\\k2 zookeeper.connect=localhost:2181,localhost:2182,localhost:2183 |
broker.id=3 host.name=127.0.0.1 port=9094 log.dirs=E:\\cluster_kafka\\log\\k3 zookeeper.connect=localhost:2181,localhost:2182,localhost:2183 |
启动 Kafka
分别通过 cmd 进入每个 Kafka 实例,输入命令启动
bin\windows\kafka-server-start.bat .\config\server.properties |
三、测试
创建 testTopic
.\bin\windows\kafka-topics.bat --create --zookeeper localhost:2181,localhost:2182,localhost:2183 --replication-factor 1 --partitions 1 --topic testTopic |
查看topic列表
.\bin\windows\kafka-topics.bat --list --zookeeper localhost:2181,localhost:2182,localhost:2183 |
生产消息
.\bin\windows\kafka-console-producer.bat --broker-list localhost:9092,localhost:9093,localhost:9094 --topic testTopic |
消费消息
.\bin\windows\kafka-console-consumer.bat --bootstrap-server localhost:9092,localhost:9093,localhost:9094 --topic testTopic |
创建一个生产者两个消费者,执行结果如下图: