前提条件
- 操作系统:CentOS7
- 服务器:3台
- Java环境:JDK1.8。安装教程参考JDK1.8安装
- Zookeeper环境 搭建教程参考Zookeeper集群环境搭建及使用
- Kafka基础知识参考Kafka角色及功能概览
搭建步骤
下载
- 执行下载命令
wget https://archive.apache.org/dist/kafka/2.8.0/kafka_2.13-2.8.0.tgz
- 执行命令
mv kafka_2.13-2.8.0.tgz /usr/local
将文件移动至/usr/local目录下
解压
- 进入所在文件目录
cd /usr/local
- 执行
tar -zxvf kafka_2.13-2.8.0.tgz
进行解压集群配置
vim /usr/local/kafka_2.13-2.8.0/config/server.properties
修改server.properties文件中以下配置项:
#3台服务器的id分别为0,1,2
broker.id=0
# 地址后面/kafka是在建立zookeeper时创建的根目录,kafka相关的数据在此目录保存
zookeeper.connect=192.168.2.187:2181,192.168.1.228:2181,192.168.1.236:2181/kafka
# 192.168.2.187为本机ip
listeners=PLAINTEXT://192.168.2.187:9092
启动Kakfa
- 进入bin目录
/usr/local/kafka_2.13-2.8.0/bin/
- 执行启动命令
./kafka-server-start.sh ../config/server.properties
,启动成功后如下图验证
- 通过zookeeper查看brokers,如下图id为0,1,2,三个节点成功启动
- 查看broker的controller,如下图,id为1当选controller
基本使用
topic创建
./kafka-topics.sh --zookeeper 192.168.2.187:2181,192.168.1.228:2181,192.168.1.236:2181/kafka --create --topic testtopic --partitions 3 --replication-factor 3
``
生产消息
- 执行命令进入生产消息控制台
./kafka-console-producer.sh --bootstrap-server 192.168.2.187:9092,192.168.1.228:9092,192.168.1.236:9092 --topic testtopic
- 键盘输入消息
消费消息
- 执行命令进入消费消息控制台
./kafka-console-consumer.sh --bootstrap-server 192.168.2.187:9092,192.168.1.228:9092,192.168.1.236:9092 --topic testtopic --group test_group
- 如下图为接收到的消息
查看消费情况
./kafka-consumer-groups.sh --bootstrap-server 192.168.2.187:9092,192.168.1.228:9092,192.168.1.236:9092 --all-groups --all-topics --describe