环境配置
前言
本文记录本人学习kafka的流程,采用的系统环境为Ubuntu.
(一)安装Java
配置Kafka前,首先配置Java环境,输入以下命令:
1 | sudo apt-get update |
其中,第一行指令是指更新Ubuntu系统中的本地软件包索引,这个命令的作用是从互联网上的软件仓库(即存储软件包的服务器)下载最新的软件包信息,并将这些信息更新到本地系统的数据库中。这个命令执行后,你的系统会知道有哪些软件包可以安装或更新,以及它们的最新版本是什么。这是在进行软件安装或更新之前应该执行的操作,因为它确保了你能够访问到最新的软件版本和依赖关系信息。
(二)安装kafka
由于直接下载官方软件包太慢了,因此用清华镜像网站进行下载,此次下载的版本是3.7.0,这是下载命令,可根据想要下载的版本进行链接选择。
1 | wget https://mirrors.tuna.tsinghua.edu.cn/apache/kafka/3.7.0/ |
下载完成后,对压缩包进行解压,并进入该目录下:
1 | tar -xzf kafka_2.13-3.7.0.tgz |
(三)单节点测试
1.启动Zookeeper服务
若果你的 Kafka 版本比较新,那它已经不再支持使用 zookeeper 参数来创建主题。在较新的 Kafka 版本中,通常使用 kafka-topics.sh 脚本时不再直接与 Zookeeper 交互,而是通过 Kafka 自身的服务器来管理主题。所以可以直接跳过这一步,不许要启动,如果版本较旧,则
输入以下指令启动Zookeeper:
1 | ./bin/zookeeper-server-start.sh config/zookeeper.properties |
2.启动kafka
输入以下指令启动Kafka:
1 | ./bin/kafka-server-start.sh config/server.properties |
3.创建主题
输入以下指令创建主题:
1 | ./bin/kafka-topics.sh --create --zookeeper localhost:2181 --replication-factor 1 --partitions 1 --topic ldy |
输入以下指令查看当前主题信息:
1 | ./bin/kafka-topics.sh --describe --bootstrap-server localhost:9092 --topic ldy |
4.创建Producer
输入以下命令,创建生产者:
1 | ./bin/kafka-console-producer.sh --broker-list localhost:9092 --topic ldy |
5.创建Consumer
输入以下命令,穿件消费者:
1 | ./bin/kafka-console-consumer.sh --bootstrap-server localhost:9092 --topic ldy |
6.消息测试
在“生产者”控制台中输入信息,可以在“消费者”控制台中看到对应的消息。
(四)单节点多broker测试
1.修改配置文件
在kafka根目录下,找到./config/server.properties配置文件,进行复制:
1 | cp server.properties server1.properties |
随后分别打开server1.properties、server2.properties进行文件配置,分别设置
broker.id=11
listeners=PLAINTEXT://:9092
log.dirs=/tmp/kafka/logs-1
broker.id=12
listeners=PLAINTEXT://:9093
log.dirs=/tmp/kafka/logs-2
修改完毕后退出保存
2.启动Zookeeper服务
与上文步骤一致。
3.启动Kafka的server服务
输入以下指令,启动server1与server2服务
1 | ./bin/kafka-server-start.sh config/server1.properties |
4.创建主题
输入以下指令,创建相应的主题,在这里,将主题设置为3个分区和2个拷贝:
1 | ./bin/kafka-topics.sh --create --bootstrap-server localhost:9092 --replication-factor 2 --partitions 3 --topic ldy |
可以输入以下指令查看主题的信息:
1 | ./bin/kafka-topics.sh --describe --bootstrap-server localhost:9092 --topic ldy |
5.创建Producer与Consumer
由于是多broker,在此对broker1设置为生产者,对broker2设置为消费者。
1 | ./bin/kafka-console-producer.sh --broker-list localhost:9092 --topic ldy |
1 | ./bin/kafka-console-consumer.sh --bootstrap-server localhost:9093 --topic ldy |
6.消息测试
在broker1的生产者中发送消息,在broker2的消费者中接收到了消息。
(五)Raft模式
1.配置多台虚拟机
为了模拟多节点,在此采用3个虚拟机进行测试,所以在环境中克隆虚拟机①,然后复制虚拟机②、③。
克隆完成后,修改每台主机的信息。这是修改主机名称.(每台虚拟机名称为1-3)
1 | hostnamectl set-hostname kraft1 |
随后修改每台主机的host文件
1 | sudo vi /etc/hosts |
在每个主机对于的文件中输入以下内容
1 | 192.168.10.130 kafka1 |
配置 server.properties,在kafka1节点的./config/kraft/server.properties中配置以下内容
1 | # Licensed to the Apache Software Foundation (ASF) under one or more |
其中,三台节点的node.id分别是1、2、3,其他都一样。
2.生成集群ID
整个集群有一个唯一的ID标志,使用uuid。可使用官方提供的 kafka-storage 工具生成,亦可以自己去用其他生成uuid。输入该指令,生成ID,并记录
1 | ./bin/kafka-storage.sh random-uuid |
3.格式化目录
使用上面生成集群 uuid, 在三个节点上都执行格式化存储目录命令:
1 | ./bin/kafka-storage.sh format -t gEiTGF_yQM-RZCU9tR9igg -c ./config/kraft/server.properties |
4.启动节点
在每个节点开启Kafka服务器
1 | ./bin/kafka-server-start.sh ./config/kraft/server.properties |
5.创建Topic
输入
1 | ./bin/kafka-topics.sh --create --topic ldy --partitions 1 --replication-factor 3 --bootstrap-server kafka1:9092,kafka2:9092,kafka3:9092 |