Kafka3.0 之 Raft 模式初体验 (单机版)

安装

1
2
3
wget --no-check-certificate https://dlcdn.apache.org/kafka/3.0.0/kafka_2.13-3.0.0.tgz  
tar -xzf kafka_2.13-3.0.0.tgz
cd kafka_2.13-3.0.0

配置

配置参数前假设我们的节点为:10.200.128.106

配置文件路径:config/kraft/server.properties

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
# 节点角色
process.roles=broker,controller

# 节点的ID,唯一
node.id=1

# 连接的集群地址字符串,每个服务器一样,单机就是本机
controller.quorum.voters=1@10.200.128.106:9093

# IP:Port,每个服务器不一样
listeners=PLAINTEXT://10.200.128.106:9092,CONTROLLER://10.200.128.106:9093
inter.broker.listener.name=PLAINTEXT

# IP:Port,每个服务器不一样
advertised.listeners=PLAINTEXT://10.200.128.106:9092

# 日志目录
log.dirs=/tmp/kraft-combined-logs

还有很多参数就不一一列举了

生成集群 ID

1
2
# bin/kafka-storage.sh random-uuid
VV7Jb8bWT-Oz_F99BNXvAQ

格式化日志目录

如果是集群应在每台机器上运行格式化命令,并且应该使用同一集群 ID

1
2
# bin/kafka-storage.sh format -t VV7Jb8bWT-Oz_F99BNXvAQ -c ./config/kraft/server.properties
Formatting /tmp/kraft-combined-logs

启动

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

也可以加上 -daemon 实现后台守护

停止

1
bin/kafka-server-stop.sh stop

创建 Topics

1
2
# bin/kafka-topics.sh --create --partitions 1 --replication-factor 1 --topic topic-name --bootstrap-server 10.200.128.106:9092
Created topic topic-name.

生产者

1
2
3
4
bin/kafka-console-producer.sh --topic topic-name --bootstrap-server 10.200.128.106:9092
>test1
>test2
>test3

可以按 Ctrl+C 结束生产者进程

消费者

1
2
3
4
# bin/kafka-console-consumer.sh --topic topic-name --from-beginning --bootstrap-server 10.200.128.106:9092
test1
test2
test3

可以按 Ctrl+C 结束消费者进程