今天版本已提測(cè)肚邢,有些空余時(shí)間可以拿到折騰诈铛,剛好手里有一臺(tái)云服務(wù)器,最近也溫習(xí)了下zk+kafka的相關(guān)資料谐岁,于是決定動(dòng)手搭一套zk集群+kafka集群醋奠,畢竟只有一臺(tái)機(jī)器,可以理解是個(gè)偽集群翰铡,但搭建的方式是差不多的钝域。
軟件準(zhǔn)備
JDK 8
下載地址:https://www.oracle.com/java/technologies/javase/javase-jdk8-downloads.html
Zookeeper
下載地址:https://archive.apache.org/dist/zookeeper/
選了一個(gè)比較新的版本,3.4.10
Kafka
下載地址:http://kafka.apache.org/downloads
選了一個(gè)比較老的版本锭魔,0.11.0.3 (隨意選的)
軟件安裝
JDK 8
很簡(jiǎn)單例证,下載后解壓到指定目錄(建議放在/usr/local/目錄下),然后配置下環(huán)境變量迷捧。
解壓命令:tar zxvf xxxx.tar.gz
配置生效命令:source /etc/profile
Zookeeper集群搭建
因?yàn)閗afka依賴zookeeper织咧,所以先搭建zookeeper。
解壓下載的壓縮包到指定目錄漠秋,并將解壓目錄復(fù)制兩份笙蒙,因zk要求>n/2個(gè)節(jié)點(diǎn)存活才能提供服務(wù),所以至少要部署3個(gè)節(jié)點(diǎn)庆锦,預(yù)留1個(gè)容錯(cuò)節(jié)點(diǎn)捅位。
-
目錄結(jié)構(gòu)
核心配置1({ZK_HOME}/conf/zoo.cfg)
# 數(shù)據(jù)和日志目錄
dataDir=/usr/local/zookeeper/zookeeper-3.4.10/data
dataLogDir=/usr/local/zookeeper/zookeeper-3.4.10/logs
# 端口
clientPort=2181
#設(shè)置集群的服務(wù)id,myid文件中的數(shù)字
server.1=127.0.0.1:2888:3888
server.2=127.0.0.1:2889:3889
server.3=127.0.0.1:2890:3890
- 核心配置2 (${dataDir}/myid)
# 比如server.1的則為1
${serverId}
- 啟動(dòng)&校驗(yàn)
啟動(dòng):
${ZK_HOME}/bin/zkServer.sh start
校驗(yàn):
ps -ef | grep "zookeeper" (查看進(jìn)程是否起來(lái)) 或者 netstat -anp | grep "${port}" (查看端口號(hào)是否綁定)
查看狀態(tài):
${ZK_HOME}/bin/zkServer.sh status
停止:
${ZK_HOME}/bin/zkServer.sh stop
KafKa集群搭建
kafka自帶zookeeper搂抒,這里我們不使用自帶的艇搀,解壓和復(fù)制步驟同zookeeper。
-
目錄結(jié)構(gòu)
- 核心配置(${KAFKA_HOME}/config/server.properties)
# broker id
broker.id=1
# 內(nèi)網(wǎng)訪問(wèn),${port}需修改
listeners=PLAINTEXT://0.0.0.0:${port}
# 提供給外網(wǎng)訪問(wèn)求晶,優(yōu)先級(jí)高于listeners配置焰雕,${IP}${port}需要根據(jù)真實(shí)IP修改
advertised.listeners=PLAINTEXT://${IP}:${port}
# zookeeper集群
zookeeper.connect=127.0.0.1:2181,127.0.0.1:2182,127.0.0.1:2183
# 日志目錄
log.dirs=/tmp/kafka-logs1
- 啟動(dòng)&校驗(yàn)
啟動(dòng):
.${KAFKA_HOME}/bin/kafka-server-start.sh -daemon ${${KAFKA_HOME}}/config/server.properties
校驗(yàn):
ps -ef | grep "kafka" (查看進(jìn)程是否起來(lái)) 或者 netstat -anp | grep "${port}" (查看端口號(hào)是否綁定)
停止:
.${KAFKA_HOME}/bin/kafka-server-stop.sh
- 官網(wǎng)文檔地址
Java Client訪問(wèn)
框架:spring boot + kafka
本來(lái)自己新建了一個(gè)項(xiàng)目引入了spring-boot相關(guān)jar包,結(jié)果啟動(dòng)出現(xiàn)了部分兼容性問(wèn)題芳杏,為節(jié)約時(shí)間矩屁,直接在github上拿了一個(gè)小哥哥的項(xiàng)目驗(yàn)證,順帶貼下他的文章地址:https://blog.csdn.net/C1041067258/article/details/90721545爵赵,改下配置就能啟動(dòng)吝秕。
結(jié)尾彩帶
推薦幾個(gè)軟件
kafka GUI:kafka tool
zookeeper GUI:idea插件zoolytic