本地ip說明
192.168.1.129 上安裝zookeeper
192.168.1.130 安裝kafka
一,下載安裝及使用
https://www.apache.org/dyn/closer.cgi?path=/kafka/1.1.0/kafka_2.11-1.1.0.tgz
zookeeper 已經安裝在 192.168.1.129上
第1步:下載後直接解壓即可
# tar -zxvf kafka_2.11-1.1.0.tgz
conf/server.properties 配置文件
zookeeper.connect=192.168.1.129:2181
第2步:後臺啓動
# sh kafka-server-start.sh -daemon ../config/server.properties
第3步:創建topic (參考官網http://kafka.apache.org/11/documentation.html#quickstart)
# bin/kafka-topics.sh --create --zookeeper 192.168.1.129:2181 --replication-factor 1 --partitions 1 --topic test
# bin/kafka-topics.sh --list --zookeeper 192.168.1.129:2181
第4步:啓動producer發送消息
# bin/kafka-console-producer.sh --broker-list 192.168.1.130:9092 --topic test
第5步:啓動consumer消費消息
# bin/kafka-console-consumer.sh --bootstrap-server 192.168.1.130:9092 --topic tes --from-beginning
二 Kafka的集羣
修改192.168.1.130配置文件 conf/server.properties
1.Zookeeper的配置,zookeeper有集羣時,用,分隔zookeeper.connect=192.168.1.129:2181,192.168.1.130:2181
zookeeper.connect=192.168.1.129:2181
2.broker的配置,集羣時,這個id要保證唯一
broker.id=0
3.listeners配置本機的ip,不能使用localhost或127.0.0.1
listeners=PLAINTEXT://192.168.1.130:9094
---------------------------------------------
修改192.168.1.131配置文件 conf/server.properties
1.Zookeeper的配置
zookeeper.connect=192.168.1.129:2181
2.broker的配置,集羣時,這個id要保證唯一
broker.id=1
3.listeners配置本機的ip
listeners=PLAINTEXT://192.168.1.131:9094
4.log目錄配置,
log.dirs=/tmp/kafka-logs
啓運Kafka的時候會在該配置的文件下生成一個 meta.properties
文件中的broker.id 要和 server.properties文件中的broker.id 一致
如果中途修改過server.properties中broker.id,有可能meta.properties不會改變,導致啓動不了
5.zookeeper中的節點信息
查看所有集羣節點
[zk: localhost:2181(CONNECTED) 17] ls /brokers/ids
[1, 3]
查看master節點
[zk: localhost:2181(CONNECTED) 26] get /controller
{"version":1,"brokerid":3,"timestamp":"1540373625137"}
cZxid = 0x2000007d2
ctime = Wed Oct 24 17:33:45 CST 2018
mZxid = 0x2000007d2
mtime = Wed Oct 24 17:33:45 CST 2018
pZxid = 0x2000007d2
cversion = 0
dataVersion = 0
aclVersion = 0
ephemeralOwner = 0x166a4c767b6000e
dataLength = 54
numChildren = 0
Kafka 沒有像ActiveMQ有 queue和topic的區分 ,它只有topic ,可以通過group.id來實現類型queue的功能