版本环境:zookeeper-3.4.14 kafka-2.2.0
一 安装zookeeper集群
1.解压完成后修改conf/zoo.cfg
dataDir=D:/messege/zookeeper-3.4.14/data
dataLogDir=D:/messege/zookeeper-3.4.14/log
clientPort=2181
server.0=192.168.31.145:2888:3888
server.1=192.168.31.55:2888:3888
server.2=192.168.31.146:2888:3888
2.没有data和log文件夹的话创建,在data文件夹下添加文件myid(没有文件类型),内容为服务的id,与配置文件的配置对应。
3.分别在三台服务器中做相同修改操作,注意myid内容与配置内容对应 。
4.到解压的zookeeper/bin文件夹下输入:zkserver.cmd 分别启动三个服务。
5.注册windows服务:
5.1下载http://archive.apache.org/dist/commons/daemon/binaries/windows/
5.2将 prunsrv.exe、prunmgr.exe复制到zookeeper的bin路径下
5.3 新建一个install.bat文件,用于注册服务 (创建完成后双击即可完成服务注册),内容如下:
prunsrv.exe “//IS//%ZOOKEEPER_SERVICE%” ^
–DisplayName=“Zookeeper (%ZOOKEEPER_SERVICE%)” ^
–Description=“Zookeeper (%ZOOKEEPER_SERVICE%)” ^
–Startup=auto --StartMode=exe ^
–StartPath=%ZOOKEEPER_HOME% ^
–StartImage=%ZOOKEEPER_HOME%\bin\zkServer.cmd ^
–StopPath=%ZOOKEEPER_HOME%\ ^
–StopImage=%ZOOKEEPER_HOME%\bin\zkServerStop.cmd ^
–StopMode=exe --StopTimeout=5 ^
–LogPath=%ZOOKEEPER_HOME% --LogPrefix=zookeeper-wrapper ^
–PidFile=zookeeper.pid --LogLevel=Info --StdOutput=auto --StdError=auto
5.4 配置zk环境变量
二 安装kafka集群
1.解压安装包后修改配置文件 config/server.propertie 完整配置文件如下:
#在kafka这个集群中的唯一标识,且只能是正整数
broker.id=2
#生产者同步发送消息,保证消息不会丢失
producer.type=sync
request.required.acks=-1
max.in.flight.requests.per.connection = 1
#listener and port
listeners=PLAINTEXT://192.168.31.55:9092
#默认9092
port:9092
#分区数量 副本数量
num.partitions=3
offsets.topic.replication.factor=3
default.replication.factor=3
# A comma separated list of directories under which to store log files
#log.dirs=/tmp/kafka-logs
log.dirs=D:/messege/kafka_2.11-2.2.1/logs
#每个tipic的默认分区个数,在创建topic时可以重新制定
# root directory for all kafka znodes.
zookeeper.connect=192.168.31.55:2181,192.168.31.145:2181,192.168.31.146:2181
2.三台服务器的配置相同,只有listeners需要修改为对应机器ip, broker为服务id每台不同。
3.在安装目录下打开命令行输入:.\bin\windows\kafka-server-start.bat .\config\server.properties
分别启动kafka
4.安装windows服务:
4.1下载nssm 地址:http://www.nssm.cc/release/nssm-2.24.zip
4.2解压后cmd进入win64目录 nssm install
4.3点击install service 完成安装
kafka配置项说明:
#参数
producer.type=sync
request.required.acks=-1
0 表示不确认是否commit成功
1 表示leader保存成功就返回成功(如果leader保存成功还没有follower成功时leader宕机,消息会丢失)
-1 表示leader和follower都成功才返回成功