单机部署
安装配置zookeeper
tar zxf zookeeper-3.4.10.tar.gz -C /usr
cp zoo-sample.cfg zoo.cfg
vi zoo.cfg
dataDir=/root/zkdata
#启动
./bin/zkServer.sh start zoo.cfg
#状态
./bin/zkServer.sh status
#关闭
./bin/zkServer.sh stop
安装配置kafka
tar zxf kafka_2.11-2.2.0.tgz -C /usr
vi config/server.properties
listeners=PLAINTEXT://node01:9092
log.dirs=/usr/kafka-logs
zookeeper.connect=node01:2181
启动
./bin/kafka-server-start.sh -daemon config/server.properties
关闭
./bin/kafka-server-stop.sh
创建topic及相应分区和备份因子
./bin/kafka-topics.sh --bootstrap-server node01:9092 --create --topic topic01 --partitions 3 --replication-factor 1
创建消费者(阻塞)
./bin/kafka-console-consumer.sh --bootstrap-server node01:9092 --topic topic01 --group group1
创建生产者-进入交互
./bin/kafka-console-producer.sh --broker-list node01:9092 --topic topic01
启动两个同组消费者,在生产者创建消息,可以发现消息被同组消费者瓜分消费
启动两个不同组消费者,在生产者创建消息,可以发现消息被广播至不同组消费者
集群部署
创建另外两个节点node02,node03
配置启动zookeeper
vi zoo.cfg
server.1=node01:2888:3888
server.2=node02:2888:3888
server.3=node03:2888:3888
配置zkid
#node01
echo 1 > /root/zkdata/myid
#node02
echo 2 > /root/zkdata/myid
#node03
echo 3 > /root/zkdata/myid
启动zk集群
./bin/zkServer.sh start zoo.cfg
配置启动kafka
vi ./config/server.properties
zookeeper.connect=node01:2181,node02:2181,node03:2181
#start
./bin/kafka-server-start.sh -daemon config/server.properties
创建topic及相应分区和备份因子(使用集群服务,创建备份2)
./bin/kafka-topics.sh --bootstrap-server node01:9092,node02:9092,node03:9092 --create --topic topic01 --partitions 3 --replication-factor 2
查看list
./bin/kafka-topics.sh --bootstrap-server node01:9092,node02:9092,node03:9092 --list
查看分区互相备份情况
./bin/kafka-topics.sh --bootstrap-server node01:9092,node02:9092,node03:9092 --describe --topic topic01
修改分区数(只能增、不能减)
./bin/kafka-topics.sh --bootstrap-server node01:9092,node02:9092,node03:9092 --alter --topic topic01 --partitions 4
删除topic
./bin/kafka-topics.sh --bootstrap-server node01:9092,node02:9092,node03:9092 --delete --topic topic02
创建消费者(阻塞)
./bin/kafka-console-consumer.sh --bootstrap-server node01:9092,node02:9092,node03:9092 --topic topic01 --group group1
#添加打印属性
./bin/kafka-console-consumer.sh --bootstrap-server node01:9092,node02:9092,node03:9092 --topic topic01 --group group1 --property print.key=true --property print.value=true --property key.separator=.
#查看组列表
./bin/kafka-consumer-groups.sh --bootstrap-server node01:9092,node02:9092,node03:9092 --list
#查看组详细
./bin/kafka-consumer-groups.sh --bootstrap-server node01:9092,node02:9092,node03:9092 --describe --group group1
创建生产者-进入交互
./bin/kafka-console-producer.sh --broker-list node01:9092,node02:9092,node03:9092 --topic topic01