CentOS7 搭建Kafka(一)zookeeper篇

近几年当红小生Kafka备受各路英雄好汉追捧,一点不比老前辈RabbitMQ和ActiveMQ差,因为流行,所以你就得学啊;我这么懒,肯定是不愿意学的,流行也跟我没啥关系,人工智能那么火我去学了么?好吧,我学了一点放弃了,学渣伤不起。我们部门和各个业务部都有对接,但每个业务部各自为政,还很强势,各种技术都用,稍微有点要求满足不了,那就要到领导去哭诉,所以用RabbitMQ的有、用Kafka的有,用RestfulAPI的有,走FileQueue也有,要直接对接数据库Mysql、SqlServer、MongoDb的也有,你还没辙,都得支持不是,o(︶︿︶)o 唉,还是会哭的孩子有奶吃啊,只能安慰一下自己多学学总归是好的~。

简介

kafka依赖zookeeper和jvm,jvm这里就不再说了,所以要搭建kafka首先要搞定zookeeper。

安装

 wget -c -t 100 http://mirror.bit.edu.cn/apache/zookeeper/zookeeper-3.4.12/zookeeper-3.4.12.tar.gz
tar -zxvf zookeeper-3.4.12.tar.gz
mv zookeeper-3.4.12 /opt/zookeeper_3.4
mkdir zkdata
mkdir zkdatalog
cd /opt/zookeeper_3.4/conf
cp zoo_sample.cfg zoo.cfg #zoo.cfg是zookeeper的配置文件
vi zoo.cfg

修改相关的值:

tickTime=2000  #作为服务器与服务器或客户端之间的心跳时间间隔
initLimit=10 #接受客户端初始化链接时最长能忍受多少个心跳间隔,当已经超过5个心跳时间长度后还没有收到客户端的返回信息,则表明客户端链接失败
syncLimit=5 #标识Leader和Follower之间请求和应答的时间长度不能操作多少个心跳间隔
dataDir=/opt/zookeeper/zkdata #快照日志的存储路径
dataLogDir=/opt/zookeeper/zkdatalog #事物日志的存储逻辑,如果不配置的话那么事物日志会默认存储到datadir中,会严重影响zookeeper的性能;
clientPort=2181 #客户端链接服务端的端口

集群配置

首先在zoo.cfg中追加:

server.133=192.168.253.133:2888:3888 #集群的配置,没集群你就不用配置啦,server.133中的133用于标识服务器,你用1、2、3也可以,只要是数字就行;
server.134=192.168.253.134:2888:3888 #192.168.253.134:2888:3888中的端口有两个第一个端口是master和slave的通信端口,默认是2888,第二个端口是选举端口,集群刚启动或者leader挂掉的时候的端口,默认是3888

然后在data目录下添加myid文件,存储一个数值作为zookeeper server进程的标识:

133服务器:

echo "133">/opt/zookeeper_3.4/zkdata/myid

134服务器:

echo "134">/opt/zookeeper_3.4/zkdata/myid

启动

/opt/zookeeper_3.4/bin/zkServer.sh start

链接

/opt/zookeeper_3.4/bin/zkCli.sh

关闭

/opt/zookeeper_3.4/bin/zkServer.sh start
05-28 04:14