前言
使用官網下載下來的kafka.tgz包,裏面包含zookeeper
解壓後複製三分kafka,注意目錄不要太深否則會報錯。也是搞笑了啊。。。。。
zookeeper集羣
在zookeeper_data/data下創建三個目錄,zk1,zk2,zk3。並分別在裏面創建對應文件myid。內容分別是1,2,3。用於給zookeeper設置唯一serveId。
分別創建日誌目錄,zk1,zk2,zk3
修改 zookeeper.properties配置文件
#數據存放目錄,會自動識別目錄下的myid文件
dataDir=E:\\kafka1\\zookeeper_data\\data\\zk1
# 日誌存放目錄
dataLogDir=E:\\kafka1\\zookeeper_data\\log\\zk1
# the port at which the clients will connect
#用於給客戶端連接的端口
clientPort=2181
# disable the per-ip limit on the number of connections since this is a non-production config
maxClientCnxns=0
# Disable the adminserver by default to avoid port conflicts.
# Set the port to something non-conflicting if choosing to enable this
admin.enableServer=false
# admin.serverPort=8080
#Zookeeper 服務器之間或客戶端與服務器之間維持心跳的時間間隔,也就是每個 tickTime 時間就會發送一個心跳。
#tickTime以毫秒爲單位。
#tickTime:該參數用來定義心跳的間隔時間,zookeeper的客戶端和服務端之間也有和web開發裏類似的session的概念,而zookeeper裏最小的session過期時間就是tickTime的兩倍。
#tickTime=
#leader 服務器等待follower啓動,並完成數據同步的時間,爲ticktime的倍數,
initLimit=10
#leader服務器和follower之間進行心跳監測的最大延時時間,爲ticktime的倍數,
syncLimit=5
# Enable snapshot.trust.empty config if the ZK upgrade from 3.4.X to 3.5.6 is failing
# with "java.io.IOException: No snapshot found, but there are log entries" error.
# Check upgrade docs for more details.
# snapshot.trust.empty=true
# 集羣配置
# server.x 分別對應myid文件的內容(每個 zoo.cfg 文件都需要添加)
#server.myid=此服務的ip:2287(通訊端口):3387(選舉端口)
server.1=localhost:2287:3387
server.2=localhost:2288:3388
server.3=localhost:2289:3389
啓動、關閉、與連接
#啓動
zookeeper-server-start.bat ../../config/zookeeper.properties
#客戶端連接
zookeeper-shell.bat localhost:2183
zookeeper基礎命令
https://blog.csdn.net/dandandeshangni/article/details/80558383
kafka集羣
創建日誌目錄
修改config目錄下的server.properties
#此服務的唯一di
broker.id=2
#此服務的端口
port=9092
#日誌文件存儲地址
log.dirs=E:\kafka1\kafka_data\log\k2
# ZooKeeper集羣 地址,多個用,分隔
zookeeper.connect=localhost:2181,localhost:2182,localhost:2183
操作命令
其他命令可參考https://www.cnblogs.com/lujinhong2/p/4686467.html
啓動:./kafka-server-start.sh -daemon ../config/server.properties
1、先創建一個測試主題:./kafka-topics.sh --create --zookeeper localhost:2181 --replication-factor 1 --partitions 1 --topic dgp
zookeeper指定其中一個節點即可,集羣之間會自動同步。
2、查看主題: ./kafka-topics.sh --list --zookeeper localhost:2181
3、發送一些消息:
./kafka-console-producer.sh --broker-list localhost:9092 --topic dgp
輸入一些信息
4、啓動命令行消費者,將消息轉儲到標準輸出:
./kafka-console-consumer.sh --bootstrap-server localhost:9092 --topic d --from-beginning