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