環(huán)境
- 操作系統(tǒng):CentOS 7.5
- 運(yùn)行環(huán)境:Java 1.8
- zookeeper-3.4.12
- kafka_2.12-1.1.0
網(wǎng)絡(luò)結(jié)構(gòu)
- host1 172.18.0.11
- host2 172.18.0.12
- host3 172.18.0.13
修改host1牺堰、host2和host3機(jī)器上的配置文件/etc/hosts六水,新增內(nèi)容如下:
172.18.0.11 host1
172.18.0.12 host2
172.18.0.13 host3
zookeeper集群
host1:2181
host2:2181
host3:2181
下載
- 下載kafka_2.12-1.1.0.tgz
- 分別上傳到host1喂柒、host2和host3機(jī)器上的/usr/local文件夾下
- 分別解壓文件tar -zxvf kafka_2.12-1.1.0.tgz砚嘴,解壓后的文件夾為 kafka_2.12-1.1.0
配置
進(jìn)入到config目錄下,修改server.properties照瘾,修改內(nèi)容如下:
# host1機(jī)器
broker.id=0
listeners=PLAINTEXT://host1:9092
advertised.listeners=PLAINTEXT://host1:9092
zookeeper.connect=host1:2181,host2:2181,host3:2181
# host2機(jī)器
broker.id=1
listeners=PLAINTEXT://host2:9092
advertised.listeners=PLAINTEXT://host2:9092
zookeeper.connect=host1:2181,host2:2181,host3:2181
# host3機(jī)器
broker.id=2
listeners=PLAINTEXT://host3:9092
advertised.listeners=PLAINTEXT://host3:9092
zookeeper.connect=host1:2181,host2:2181,host3:2181
修改producer.properties文件匈棘,內(nèi)容如下:
bootstrap.servers=host1:9092,host2:9092,host3:9092
修改consumer.properties文件,內(nèi)容如下:
group.id=mygroup
bootstrap.servers=host1:9092,host2:9092,host3:9092
啟動(dòng)
# 前臺(tái)啟動(dòng)网杆,關(guān)閉使用Ctrl+C組合鍵
./bin/kafka-server-start.sh ./config/server.properties
# 后臺(tái)啟動(dòng)
./bin/kafka-server-start.sh -daemon ./config/server.properties
關(guān)閉
./bin/kafka-server-stop.sh
topic
查看topic
./bin/kafka-topics.sh --list --zookeeper host1:2181,host2:2181,host3:2181
創(chuàng)建topic
./bin/kafka-topics.sh --create --zookeeper host1:2181,host2:2181,host3:2181 --replication-factor 2 --partitions 1 --topic mytopic
- --replication-factor 2 # 復(fù)制兩份
- --partitions 1 # 創(chuàng)建1個(gè)分區(qū)
查看topic狀態(tài)
./bin/kafka-topics.sh --describe --zookeeper host1:2181,host2:2181,host3:2181 --topic mytopic
刪除topic
./bin/kafka-topics.sh --delete --zookeeper host1:2181,host2:2181,host3:2181 --topic mytopic
consumer
訂閱消息
# 舊的訂閱消息方式采用--zookeeper
./bin/kafka-console-consumer.sh --zookeeper host1:2181,host2:2181,host3:2181 --topic mytopic
./bin/kafka-console-consumer.sh --zookeeper host1:2181,host2:2181,host3:2181 --topic mytopic --from-beginning
# 新的訂閱方式采用--bootstrap-server
./bin/kafka-console-consumer.sh --bootstrap-server host1:9092,host2:9092,host3:9092 --topic mytopic
./bin/kafka-console-consumer.sh --bootstrap-server host1:9092,host2:9092,host3:9092 --topic mytopic --from-beginning
producer
發(fā)布消息
./bin/kafka-console-producer.sh --broker-list host1:9092,host2:9092,host3:9092 --topic mytopic