问小白 wenxiaobai
资讯
历史
科技
环境与自然
成长
游戏
财经
文学与艺术
美食
健康
家居
文化
情感
汽车
三农
军事
旅行
运动
教育
生活
星座命理

基于Docker部署Kafka 3.8.0并开启SASL认证的完整指南

创作时间:
作者:
@小白创作中心

基于Docker部署Kafka 3.8.0并开启SASL认证的完整指南

引用
CSDN
1.
https://blog.csdn.net/m0_54138989/article/details/145466250

本文将详细介绍如何在Docker环境下部署Kafka 3.8.0版本,并开启SASL认证模式。通过本文,读者将能够掌握从下载安装包、配置文件修改到服务启动和测试生产的完整流程。

1. 下载安装包

访问Kafka官方下载页面,下载Kafka 3.8.0版本的安装包。具体版本如下图所示:

2. 解压安装包

使用以下命令对下载的安装包进行解压:

tar -xvf kafka_2.13-3.8.0.tgz

3. 增加配置文件

3.1 配置Kafka服务器认证信息

进入Kafka配置目录:

cd kafka_2.13-3.8.0/config

创建kafka_server_jaas.conf文件,内容如下:

KafkaServer {
  org.apache.kafka.common.security.plain.PlainLoginModule required
  serviceName = "kafka3.8.0"
  username="admin"
  password="admin"
  user_admin="admin"
  user_alice="alice";
};

3.2 修改服务器属性文件

编辑server.properties文件,增加以下配置:

# 安全内部协议,指定使用SASL协议
security.inter.broker.protocol=SASL_PLAINTEXT

# SASL认证机制,默认使用PLAIN
sasl.mechanism.inter.broker.protocol=PLAIN
sasl.enabled.mechanisms=PLAIN

# 如果没有找到ACL(访问控制列表)配置,则允许任何操作。
allow.everyone.if.no.acl.found=false

# 超级管理员权限用户
super.users=User:admin

# 监听
listeners=SASL_PLAINTEXT://localhost:9092

# 这个地址是客户端用来连接到Kafka Broker的地址
advertised.listeners=SASL_PLAINTEXT://localhost:9092

3.3 配置客户端认证信息

创建kafka_consumer_jaas.conf文件,内容如下:

KafkaClient {
  org.apache.kafka.common.security.plain.PlainLoginModule required
  username="admin"
  password="admin";
};

创建kafka_producer_jaas.conf文件,内容如下:

KafkaClient {
  org.apache.kafka.common.security.plain.PlainLoginModule required
  username="admin"
  password="admin";
};

3.4 配置Topic认证信息

创建kafka_topic_jass.properties文件,内容如下:

security.protocol=SASL_PLAINTEXT
sasl.mechanism=PLAIN
sasl.jaas.config=org.apache.kafka.common.security.plain.PlainLoginModule required username="admin" password="admin";

3.5 修改生产者和消费者配置文件

producer.properties文件末尾添加:

security.protocol=SASL_PLAINTEXT
sasl.mechanism=PLAIN

consumer.properties文件末尾添加:

security.protocol=SASL_PLAINTEXT
sasl.mechanism=PLAIN

4. 修改启动脚本

4.1 修改Kafka服务器启动脚本

编辑kafka-server-start.sh脚本,在最上方添加:

export KAFKA_OPTS="-Djava.security.auth.login.config=/kafka_2.13-3.8.0/config/kafka_server_jaas.conf"

4.2 修改生产者控制台启动脚本

编辑kafka-console-producer.sh脚本,在最上方添加:

export KAFKA_OPTS=" -Djava.security.auth.login.config=/kafka_2.13-3.8.0/config/kafka_producer_jaas.conf"

4.3 修改消费者控制台启动脚本

编辑kafka-console-consumer.sh脚本,在最上方添加:

export KAFKA_OPTS=" -Djava.security.auth.login.config=/kafka_2.13-3.8.0/config/kafka_consumer_jaas.conf"

5. 启动Zookeeper服务

在Kafka根目录下执行:

./zookeeper-server-start.sh ../config/zookeeper.properties &

后台运行Zookeeper服务。使用以下命令检查Zookeeper是否正确启动:

lsof -i:2181

6. 启动Kafka服务

在Kafka根目录下执行:

./kafka-server-start.sh ../config/server.properties &

后台运行Kafka服务。使用以下命令检查Kafka是否正常启动:

lsof -i:9092

7. 创建Topic

执行以下命令创建Topic:

./kafka-topics.sh --create --bootstrap-server localhost:9092 --topic zhangsan --command-config ../config/kafka_topic_jass.properties

使用以下命令查询已创建的Topic列表:

./kafka-topics.sh --list --bootstrap-server localhost:9092 --command-config ../config/kafka_topic_jass.properties

8. 启动生产者测试发送数据

执行以下命令启动生产者:

./kafka-console-producer.sh --broker-list localhost:9092 --topic zhangsan --producer.config ../config/producer.properties

9. 启动消费者测试接收消息

执行以下命令启动消费者:

./kafka-console-consumer.sh --bootstrap-server localhost:9092 --topic zhangsan --consumer.config ../config/consumer.properties

通过以上步骤,读者可以成功在Docker环境下部署Kafka 3.8.0版本并开启SASL认证模式。希望本文对大家有所帮助!

© 2023 北京元石科技有限公司 ◎ 京公网安备 11010802042949号