前言

注意:Kafka是v2.8之前的版本,从v2.8版本开始不再需要借助ZooKeeper

kafka v2.8开始弃用ZooKeeper

kafka v3.0开始弃用Java 8Scala 2.12

该文章用的Kakfa版本是v3.x+版本。如果想参考v2.8x+之前的版本,点击【Kafka在Linux下载安装及部署

kafka的安装及部署

官网下载 kafka.tgz 包

我这里安装的版本:kafka_2.13-3.5.1.tgz

Kafka官网下载地址:Apache Kafka官网

上传服务器

将下载好的kafka_2.13-3.5.1.tgz包丢到服务器上任意一个你能找到的地方

创建文件夹

/usr/local路径下创建一个文件夹kafka

1
mkdir /usr/local/kafka

解压

解压压缩包到/usr/local/kafka目录下

1
tar -zxvf kafka_2.13-3.5.1.tgz -C /usr/local/kafka

新建kafka-logs

/usr/local/kafka/kafka_2.13-3.5.1新建一个文件夹kafka-logs

1
mkdir /usr/local/kafka/kraft_logs

修改kafka的配置文件

在kafka主目录下 bin/configbin/config/kraft文件夹中找到server.properties并进行修改

进入kafka根目录下

1
cd /usr/local/kafka/kafka_2.13-3.5.1

1
vim config/kraft/server.properties

重点关注这三个参数

1
2
3
node.id=1
controller.quorum.voters=1@kraft1:9093,2@kraft1:9093,3@kraft1:9093
log.dirs=/usr/local/kafka/kraft_log

注意:如果集群有多个节点,则controller.quorum.voters需要配置多个,单个的话则需要配置一个,例如:
单个节点:controller.quorum.voters=1@kraft1:9093
多个节点:controller.quorum.voters=1@kraft1:9093,2@kraft1:9093,3@kraft1:9093

多个节点需要逐步启动,
假设有ABC三个节点,则需每个节点的controller.quorum.voters分别为 A、A+B、A+B+C

例如:

  • 节点1:controller.quorum.voters=1@kraft1:9093
  • 节点2:controller.quorum.voters=1@kraft1:9093,2@kraft1:9093
  • 节点3:controller.quorum.voters=1@kraft1:9093,2@kraft1:9093,3@kraft1:9093

生成唯一的ID标志(使用官方提供的kafka-storage tool生成)

1
./bin/kafka-storage.sh random-uuid

u_mveSvMRlKds-tE6QnZOA

执行节点(集群的话,则需要每个节点都执行)

1
./bin/kafka-storage.sh format -t u_mveSvMRlKds-tE6QnZOA -c ./config/kraft/server.properties

查看下配置文件

1
cat /usr/local/kafka/kraft_logs/meta.properties

node.id=1
version=1
cluster.id=u_mveSvMRlKds-tE6QnZOA

启动节点服务

1
./bin/kafka-server-start.sh ./config/kraft/server.properties &

创建一个topic

1
./bin/kafka-topics.sh --create --topic foo --partitions 1 --replication-factor 1 --bootstrap-server localhost:9092

描述topic,查看topic的详细信息

1
./bin/kafka-topics.sh --list --bootstrap-server localhost:9092