Kafka集群安装
一、为啥用Kafka
二、Zookeeper与Kafka以及SpringBoot的版本对应
2.1、JDK8支持的Kafka版本
打开kafka的官网,找到对应版本的kafka,查看文档中各版本对jdk8(java8)的支持(下面地址是2.6的版本,注意选自己需要的版本)
文档地址:https://kafka.apache.org/26/documentation.html
本次集群我是用的版本是kafka_2.13-2.5.0,这个版本支持jdk1.8
使用的Zookeeper是kafka_2.13-2.5.0.
这里需要强调的是,先看自己电脑安装的java版本,然后去查能对应安装的kafka和Zookeeper的最高版本是什么,然后再对应Zookeeper能对应的kafka本本。
2.2、Kafka与SpringBoot的版本对应
三、Zookeeper集群搭建
Kafka集群是把状态保存在Zookeeper中的,首先要搭建Zookeeper集群。
3.1、软件环境
(3台服务器-我的测试)
192.168.1.221 server1
192.168.1.110 server2
192.168.1.31 server3
1、服务器一台、三台、五台、(2*n+1),Zookeeper集群的工作是超过半数才能对外提供服务,3台中超过两台超过半数,允许1台挂掉 ,是否可以用偶数,其实没必要。
如果有四台那么挂掉一台还剩下三台服务器,如果在挂掉一个就不行了,这里记住是超过半数。
2、Java jdk1.8 zookeeper是用java写的所以他的需要JAVA环境,java是运行在java虚拟机上的
3、Zookeeper的稳定版本Zookeeper 3.4.6版本
3.2、配置&安装Zookeeper
- 解压Zookeeper压缩包
- 配置系统环境变量(系统变量中新增ZOOKEEPER_HOME变量,指向Zookeeper所在根目录
- 系统变量path中添加“%ZOOKEEPER_HOME%\bin”
- 修改配置文件
# 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 directory where the snapshot is stored.
# do not use /tmp for storage, /tmp here is just
# example sakes.
dataDir=E:\\MOM\\apache-zookeeper-3.7.0-bin\\zkdata
# 事物日志的存储路径,如果不配置这个那么事物日志会默认存储到dataDir制定的目录,这样会严重影响zk的性能,当zk吞吐量较大的时候,产生的事物日志、快照日志太多
dataLogDir=E:\\MOM\\apache-zookeeper-3.7.0-bin\\zkdatalog
# the port at which the clients will connect
clientPort=2181
server.1=192.168.1.221:2888:3888
server.2=192.168.1.110:2888:3888
server.3=192.168.1.31:2888:3888
#server.1 这个1是服务器的标识也可以是其他的数字, 表示这个是第几号服务器,用来标识服务器,这个标识要写到快照目录下面myid文件里
#192.168.1.221为集群里的IP地址,第一个端口是master和slave之间的通信端口,默认是2888,第二个端口是leader选举的端口,集群刚启动的时候选举或者leader挂掉之后进行新的选举的端口默认是3888
#myid文件没有后缀,dataDir目录下直接创建名字myid,内容分别为server后的数字1、 2 、 3
# 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
## Metrics Providers
#
# https://prometheus.io Metrics Exporter
#metricsProvider.className=org.apache.zookeeper.metrics.prometheus.PrometheusMetricsProvider
#metricsProvider.httpPort=7000