本地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的功能