windows环境下安装配置Kafka集群
1.安装Java环境
2.下载zookeeper
博主选用版本为Apache ZooKeeper 3.5.8,参考文章:https://blog.csdn.net/qq_33316784/article/details/88563482
3.下载kafka
4.配置与启动
博主选用版本为kafka_2.11-2.4.1.tgz ,参考文章:https://www.cnblogs.com/zhanh247/p/11388013.html
确认环境ok进行以下步骤:
1).配置zookeeper
将下载下来的zk压缩包解压后复制出三份,zookeeper-1、zookeeper-2、zookeeper-3
分别创建 data 目录存放数据,创建 log 目录存放日志
在 data 目录中分别创建文件 myid,文件内容分别写入 1、2、3(注意myid文件无后缀)
同理,zookeeper-3省略…
将zookeeper-1/conf 文件下 zoo_sample.cfg 复制一份命名为 zoo.cfg(建议 zoo_sample.cfg 重命名为其他名称,避免出现其他预料之外的情况),修改如下:
我的zoo.cfg配置如下:
# The number of milliseconds of each tick
tickTime=2000
# The number of ticks that the initial
# synchronization phase can take
initLimit=10
# The number of ticks that can pass between
# sending a request and getting an acknowledgement
syncLimit=5
# the port at which the clients will connect
clientPort=2181
# the maximum number of client connections.
# increase this if you need to handle more clients
#maxClientCnxns=60
#
# Be sure to read the maintenance section of the
# administrator guide before turning on autopurge.
#
# http://zookeeper.apache.org/doc/current/zookeeperAdmin.html#sc_maintenance
#
# The number of snapshots to retain in dataDir
#autopurge.snapRetainCount=3
# Purge task interval in hours
# Set to "0" to disable auto purge feature
#autopurge.purgeInterval=1
# 数据存放目录
dataDir=D:/zookeeper/zookeeper-1/data
# 日志存放目录
dataLogDir=D:/zookeeper/zookeeper-1/log
# 监听端口
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\conf\zoo.cfg:
# 数据存放目录
dataDir=D:/zookeeper/zookeeper-2/data
# 日志存放目录
dataLogDir=D:/zookeeper/zookeeper-2/log
# 监听端口
clientPort=2182
# 集群配置
# server.x 分别对应myid文件的内容(每个 zoo.cfg 文件都需要添加)
# 2287(通讯端口):3387(选举端口)
server.1=localhost:2287:3387
server.2=localhost:2288:3388
server.3=localhost:2289:3389
#zookeeper-3\conf\zoo.cfg:
# 数据存放目录
dataDir=D:/zookeeper/zookeeper-3/data
# 日志存放目录
dataLogDir=D:/zookeeper/zookeeper-3/log
# 监听端口
clientPort=2183
# 集群配置
# server.x 分别对应myid文件的内容(每个 zoo.cfg 文件都需要添加)
# 2287(通讯端口):3387(选举端口)
server.1=localhost:2287:3387
server.2=localhost:2288:3388
server.3=localhost:2289:3389
双击文件,启动1,2,3
注:这里启动1、2的时候可能会报错,这是因为是集群环境,必须要3个都启动才行,由于这里是一个个启动的,所以连接其它端口会被拒绝。三个都启动后报错停止
2).配置kafka
将下载的kafka安装包解压,复制出3份,kafka_1、kafka_2、kafka_3
配置参数(原有参数这里我未作变动),打开kafka_1\config目录下server.properties:
##############主要配置部分 start ##############
# broker 编号,集群内必须唯一
broker.id=1
# host 地址
host.name=127.0.0.1
# 端口
port=9092
# 消息日志存放地址
log.dirs=D:/kafka/kafka_1/log
# ZooKeeper 地址,多个用,分隔
zookeeper.connect=localhost:2181,localhost:2182,localhost:2183
##############主要配置部分 end ##############
num.network.threads=3
num.io.threads=8
socket.send.buffer.bytes=102400
socket.receive.buffer.bytes=102400
socket.request.max.bytes=104857600
num.partitions=1
num.recovery.threads.per.data.dir=1
offsets.topic.replication.factor=1
transaction.state.log.replication.factor=1
transaction.state.log.min.isr=1
log.retention.hours=168
log.segment.bytes=1073741824
log.retention.check.interval.ms=300000
zookeeper.connection.timeout.ms=6000
group.initial.rebalance.delay.ms=0
这里只贴出不同的地方:
#kafka_2\config\server.properties
# broker 编号,集群内必须唯一
broker.id=2
# host 地址
host.name=127.0.0.1
# 端口
port=9093
# 消息日志存放地址
log.dirs=D:/kafka/kafka_2/log
# ZooKeeper 地址,多个用,分隔
zookeeper.connect=localhost:2181,localhost:2182,localhost:2183
#kafka_3\config\server.properties
# broker 编号,集群内必须唯一
broker.id=3
# host 地址
host.name=127.0.0.1
# 端口
port=9094
# 消息日志存放地址
log.dirs=D:/kafka/kafka_3/log
# ZooKeeper 地址,多个用,分隔
zookeeper.connect=localhost:2181,localhost:2182,localhost:2183
进入kafka目录分别通过 cmd启动命令:
.\bin\windows\kafka-server-start.bat .\config\server.properties
3).测试
创建 testTopic
.\bin\windows\kafka-topics.bat --create --zookeeper localhost:2181,localhost:2182,localhost:2183 --replication-factor 1 --partitions 1 --topic testTopic
创建生产者
.\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