前提条件
- 操作系统: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 进行解压
usr/local/kafka_2.13-2.8.0/config/server.properties 修改server.properties文件中以下配置项:
代码语言:powershell
#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
创建
代码语言:bash
./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
- 如下图为接收到的消息