搭建Kafka+zookeeper集群调度

前言

硬件环境

172.18.0.5        kafkazk1        Kafka+zookeeper                Kafka Broker集群
172.18.0.6        kafkazk2        Kafka+zookeeper                Kafka Broker集群
172.18.0.7        kafkazk3        Kafka+zookeeper                Kafka Broker集群

软件环境

zookeeper           3.5.9                   资源调度、写作
Kafka               2.8.0                消息通信中间件 

安装JDK1.8

安装搭建zookeeper集群

对于集群模式下的zookeeper部署,官方建议至少需要三台服务器,关于服务器数量推荐是奇数个数(3、5、7等等),以实现zookeeper集群的高可用,这里使用三台服务器进行部署
 

注意:zoo和kafka有版本不一致的问题,需要去官网看确切的版本然后在进行下载。 kafka3.8.0兼容zoo3.8.4

下载安装zookeeper

#zookeeper使用java编写的,需要安装Java运行环境,可以在zookeeper官网 https://zookeeper.apache.org/获取zookeeper安装包,这里安装的版本是zookeeper-3.9.2.tar.gz 将下载下来的安装包直接解压都一个路径下即可完成zookeeper的安装

#切换目录
cd /usr/local
#下载
wget https://archive.apache.org/dist/zookeeper/zookeeper-3.5.9/apache-zookeeper-3.5.9-bin.tar.gz
#解压
tar -zxvf zookeeper-3.9.2.tar.gz -C /usr/local
#更换文件名
mv /usr/local/zookeeper-3.9.2 /usr/local/zookeeper

配置zoo.cfg

zookeeper安装到了/usr/local/目录下,因此,zookeeper的配置模版文件为/usr/local/zookeeper/conf/zoo_sample.cfg,拷贝zoo_sample.cfg并重命名为zoo.cfg,重点配置内容如下

########zoo.cfg#################
tickTime=2000		# 控制心跳和超市的时间秒 时间度量单位   毫秒
initLimit=10		#10个tickTime  配置链接到lead节点时,最长忍受多长心跳和超时节点
syncLimit=5			#5个tickTime 标识lead和 发送消息是请求和应答时间长度 不能超过多少个tickTime
dataDir=/usr/local/zookeeper/data #存储快照文件的目录 必配  数据目录 目录必须存在 如果没有配置dataLogDir那么事务日志也会存在此目录
clientPort=2181		#zookeeper 的端口
#下面是集群配置 对应集群服务器的信息    
#第几台服务器=第几台服务器的ip地址  :  集群lead通信的端口  :  执行选举的时候的一个端口
server.1=172.18.0.5:2888:3888
server.2=172.18.0.6:2888:3888
server.3=172.18.0.7:2888:3888
#############zoo.cfg################

zoo.cfg配置解析

#tickTime:zookeeper使用的基本时间度量单位,以毫秒为单温,它用来控制心跳和超时,2000标识2ticktime。更低的tickTime值可以更快地发现超时时间问题。
#initLimit:这个配置项是用来配置zookeeper急群众Follower服务器初始化连接到Leader时,最长能忍受多少个心跳时间间隔数(也就是tickTime)口
#syncLimit:这个配置项标识Leader与Follower之间发送消息,请求和应答时间长度最长不能超过多少个tickTimes的时间长度。
#dataDir:必须配置项,用于配置存储快照文件的目录,需要事先创建好这个木,如果没有配置dataLogDir,那么事务日志也会存储在此目录。
#clientPort:zookeeper服务进程监听的TCP端口,默认情况下,服务端会监听2181端口。
#server.A=B:C:D  其中A是一个数字,表示第几个服务器;B是这个服务器的IP地址;C表示的是这个服务器与急群众的Leader服务器通信的端口;D表示如果集群中的Leader服务器宕机了,需要一个端口来重新进行选举,选出一个新的Leader而这个端口就是用来执行选举时服务器相互通信的端口。

配置myid

除了修改zoo.cfg配置文件外,集群模式下还要配置一个文件myid,这个文件需要放在dataDir配置项指定的目录下,这个文件里面只有一个数字,如果要写入1,表示第一个服务器,与zoo.cfg文本中的server.1中的1对应,以此类推,在集群的第二个服务器zoo.cfg配置文件中dataDir配置项指定的目录下创建myid文件,写入2,这个2与zoo

你可能感兴趣的:(kafka,分布式)