Kafaka 集群搭建(Windows环境)
? 关于Kafka 简介可以查看 https://www.cnblogs.com/lentoo/p/7785004.html ,里面介绍比较详细。
一、Zookeeper 安装
-
从官网下载,本次演示使用的是最新的 3.7.0的版本
-
zookeeper 配置
(1)下载解压后,在conf文件夹下,将默认配置文件 zoo_sample.cfg,复制后重命名一份为 200.cfg 。
(2)配置 zoo.cfg ,注意端口不要太大,否则后面启动会报错
tickTime=2000 initLimit=10 syncLimit=5 # snapshot持久化 dataDir=../data dataLogDir=../logs clientPort=2181 #集群配置 server.A = B:C:D #A 是一个数字,表示第几号服务器 #B 服务器IP地址 #C 端口号,当前服务器与集群的 Leader 服务器交换信息的接口 #D Leader 挂掉时用来进行选举 leader所用的端口 server.1=127.0.0.1:2387:1387 server.2=127.0.0.1:2388:1388 server.3=127.0.0.1:2389:1389
-
复制 zookeeper 文件夹,重命名为 -2 -3
zookeeper-3.7.0 修改zoo.cfg 配置文件
clientPort=2181
zookeeper-3.7.0-2 修改zoo.cfg 配置文件
clientPort=2182
zookeeper-3.7.0-3 修改zoo.cfg 配置文件
clientPort=2183
-
创建 ServerID
在配置的dataDir目录下面新建一个 myid 文件,文件内容就是对应的id号,
比如:
zookeeper-3.7.0 myid 文件的内容 为 1
zookeeper-3.7.0-2 myid 文件的内容 为 2
zookeeper-3.7.0-3 myid 文件的内容 为 3
-
启动 zookeeper
在对应的bin目录下启动 cmd命令,输入 zkServer (需要将zookeeper配置到系统环境变量)
二、 安装 Kafka
(1) 从官网下载,注意下载二进制文件,本次演示使用版本 kafka_2.12-2.8.0
(2) 配置文件
? 解压之后,在config文件夹下,打开 server.properties配置文件进行配置
# The id of the broker. This must be set to a unique integer for each broker. broker.id=0 port=9092 #配置副本数量 default.replication.factor=2 # The number of threads that the server uses for receiving requests from the network and sending responses to the network num.network.threads=3 # The number of threads that the server uses for processing requests, which may include disk I/O num.io.threads=8 # The send buffer (SO_SNDBUF) used by the socket server socket.send.buffer.bytes=102400 # The receive buffer (SO_RCVBUF) used by the socket server socket.receive.buffer.bytes=102400 # The maximum size of a request that the socket server will accept (protection against OOM) socket.request.max.bytes=104857600 ############################# Log Basics ############################# # A comma separated list of directories under which to store log files log.dirs=../kafka-logs # The default number of log partitions per topic. More partitions allow greater # parallelism for consumption, but this will also result in more files across # the brokers. num.partitions=1 # The number of threads per data directory to be used for log recovery at startup and flushing at shutdown. # This value is recommended to be increased for installations with data dirs located in RAID array. num.recovery.threads.per.data.dir=1 ############################# Internal Topic Settings ############################# # The replication factor for the group metadata internal topics "__consumer_offsets" and "__transaction_state" # For anything other than development testing, a value greater than 1 is recommended to ensure availability such as 3. 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 # server. e.g. "127.0.0.1:3000,127.0.0.1:3001,127.0.0.1:3002". # You can also append an optional chroot string to the urls to specify the # root directory for all kafka znodes. zookeeper.connect=127.0.0.1:2181,127.0.0.1:2182,127.0.0.1:2183 # Timeout in ms for connecting to zookeeper zookeeper.connection.timeout.ms=18000 group.initial.rebalance.delay.ms=0
(3) 集群配置
复制两份解压后的文件,命名如下
kafka_2.12-2.8.0-2 kafka_2.12-2.8.0-3
修改部分配置信息
在对应的server.properties中修改
#**唯一标识
broker.id=0
broker.id=1
broker.id=2
#**监听端口
port=9092
port=9093
port=9094
(4) 启动 Kafka
进入到bin/windows目录下 启动kafka并指定配置文件
kafka-server-start.bat ../../config/server.properties
三、集群测试
(1)创建一个 topic
kafka-topics.bat --create --zookeeper 127.0.0.1:2181 --replication-factor 1 --partitions 1 --topic test
(2)查看是否创建成功
kafka-topics.bat --list --zookeeper localhost:2181
(3)发送消息
kafka-console-producer.bat --broker-list localhost:9092 --topic test helloworld
(4)接收消息
? 分别在kafka_2.12-2.8.0\bin\windows 目录下执行
.\kafka-console-consumer.bat --bootstrap-server localhost:9092 --topic test .\kafka-console-consumer.bat --bootstrap-server localhost:9093 --topic test .\kafka-console-consumer.bat --bootstrap-server localhost:9094 --topic test
-