Kafka快速入门
Kafka部署
官方下载地址:https://kafka.apache.org/downloads
# 1.下载安装包
[root@db03 ~]# cd /opt
[root@db03 opt]#wget https://mirrors.tuna.tsinghua.edu.cn/apache/kafka/3.5.1/kafka_2.12-3.5.1.tgz --no-check-certificate
# 2.安装kafka
## 2.1.解压kafka二进制包
[root@db03 opt]# tar xf kafka_2.12-3.5.1.tgz
## 2.2.移动到/usr/local目录下
[root@db03 opt]# mv kafka_2.12-3.5.1 /usr/local/kafka
# 3.修改配置文件
## 3.1.备份配置文件
[root@db03 opt]# cd /usr/local/kafka/config/
[root@db03 config]# cp server.properties{,.bak}
## 3.2.修改配置文件
[root@db03 config]# vim server.properties
#21行,broker的全局唯一编号,每个broker不能重复,因此要在其他机器上配置 broker.id=1、broker.id=2
broker.id=0
#31行,指定监听的IP和端口,如果修改每个broker的IP需区分开来,也可保持默认配置不用修改
listeners=PLAINTEXT://10.0.0.53:9092 #(本章修改位置)
#42行,broker 处理网络请求的线程数量,一般情况下不需要去修改
num.network.threads=3
#45行,用来处理磁盘IO的线程数量,数值应该大于硬盘数
num.io.threads=8
#48行,发送套接字的缓冲区大小
socket.send.buffer.bytes=102400
#51行,接收套接字的缓冲区大小
socket.receive.buffer.bytes=102400
#54行,请求套接字的缓冲区大小
socket.request.max.bytes=104857600
#60行,kafka运行日志存放的路径,也是数据存放的路径
log.dirs=/usr/local/kafka/logs #(本章修改位置)
#65行,topic在当前broker上的默认分区个数,会被topic创建时的指定参数覆盖
num.partitions=1
#69行,用来恢复和清理data下数据的线程数量
num.recovery.threads.per.data.dir=1
#103行,segment文件(数据文件)保留的最长时间,单位为小时,默认为7天,超时将被删除
log.retention.hours=168
#110行,一个segment文件最大的大小,默认为 1G,超出将新建一个新的segment文件
log.segment.bytes=1073741824 #(本章修改位置)
###123行,配置连接Zookeeper集群地址
zookeeper.connect=10.0.0.53:2181 #(本章修改位置)
## 3.3.修改配置文件(去注释版)
[root@db03 config]# vim server.properties
listeners=PLAINTEXT://10.0.0.53:9092
log.dirs=/usr/local/kafka/logs
log.segment.bytes=1073741824
zookeeper.connect=10.0.0.53:2181
# 4.修改环境变量
[root@db03 config]# vim /etc/profile.d/kafka.sh
export KAFKA_HOME=/usr/local/kafka
export PATH=$PATH:$KAFKA_HOME/bin
## 4.1.加载配置
[root@db03 config]# source /etc/profile
# 5.启动kafka
##5.1.安装java环境
[root@db03 ~]# wget https://download.oracle.com/java/17/latest/jdk-17_linux-x64_bin.tar.gz
[root@db03 ~]# tar zxf jdk-17_linux-x64_bin.tar.gz
[root@db03 ~]# rm -rf jdk-17_linux-x64_bin.tar.gz
[root@db03 ~]# mv jdk-17.0.8 jdk-17
[root@db03 ~]# mv jdk-17 /usr/local/
[root@db03 ~]# vim /etc/profile.d/java.sh
export JAVA_HOME=/usr/local/jdk-17
export PATH=/usr/local/php/bin:/usr/local/jdk-17/bin:$PATH
[root@db03 ~]# source /etc/profile
##5.2.使用Zookeeper启动
[root@db03 ~]# zookeeper-server-start.sh /usr/local/kafka/config/zookeeper.properties &
[root@db03 ~]# kafka-server-start.sh /usr/local/kafka/config/server.properties &
##5.3.关闭kafka
[root@db03 ~]# kafka-server-stop.sh /usr/local/kafka/config/server.properties
[root@db03 ~]# zookeeper-server-stop.sh /usr/local/kafka/config/zookeeper.properties
# 6.查看端口
[root@db03 init.d]# netstat -lntup
tcp6 0 0 10.0.0.53:9092 :::* LISTEN 54686/java
kafka操作方法
# 创建一个主题来存储您的事件
kafka-topics.sh --create --topic quickstart-events --bootstrap-server 10.0.0.53:9092
# 显示新主题的分区计数等详细信息
kafka-topics.sh --describe --topic quickstart-events --bootstrap-server 10.0.0.53:9092
Topic: quickstart-events TopicId: TJwW-R0-RFqd3FYJbKr9TA PartitionCount: 1 ReplicationFactor: 1 Configs: segment.bytes=1073741824
Topic: quickstart-events Partition: 0 Leader: 0 Replicas: 0 Isr: 0
# 将一些事件写入主题
kafka-console-producer.sh --topic quickstart-events --bootstrap-server 10.0.0.53:9092
This is my first event
This is my second event
`Ctrl-C`您可以随时 停止生产者客户端。
# 阅读事件
kafka-console-consumer.sh --topic quickstart-events --from-beginning --bootstrap-server 10.0.0.53:9092
This is my first event
This is my second event
`Ctrl-C`您可以随时停止消费者客户端。