1 安装kafka
第一步安装kafka,并能成功启动,可参考文章Windows下安装Kafka3-CSDN博客
2 修改kafka的配置文件
server.properties是kafka的主要配置文件,里面有很多参数可以调整。
主要修改如下
listeners=SASL_PLAINTEXT://127.0.0.1:9092
sasl.enabled.mechanisms=PLAIN
sasl.mechanism.inter.broker.protocol=PLAIN
security.inter.broker.protocol=SASL_PLAINTEXT
在server.properties中,你需要修改以下几个参数:
- listeners:这是kafka的监听地址和端口,可以有多个。我们需要添加一个sasl_plaintext类型的监听器,表示使用sasl和明文传输。例如,我们可以设置为listeners=SASL_PLAINTEXT://127.0.0.1:9092,PLAINTEXT://:9093
-
sasl.enabled.mechanisms=PLAIN
启用PLAIN
认证机制,这是一种基于用户名和密码的简单认证方式 -
sasl.mechanism.inter.broker.protocol=PLAIN
在broker之间使用PLAIN
机制进行SASL认证 -
security.inter.broker.protocol=SASL_PLAINTEXT
Kafka broker之间的通信将使用SASL_PLAINTEXT
协议。这是为了保证内部通信的安全性
3 创建kafka_server_jaas.conf文件
这里我们定义了一个KafkaServer段,表示kafka服务器端使用的认证模块。我们使用PlainLoginModule,并指定了用户名和密码。我们还定义了两个用户,admin和alice,并分别给他们设置了密码。
KafkaServer {org.apache.kafka.common.security.plain.PlainLoginModule requiredusername="admin"password="123456"user_admin="123456";
};
4 设置系统属性
我们在kafka-server-start.bat文件,设置环境变量,指向刚才的认证文件
set KAFKA_OPTS=-Djava.security.auth.login.config=D:\kafka_2.12-3.6.1\config\kafka_server_jaas.conf
然后我们启动kafka,如果能正常启动,则表明kafka服务端的验证配置已经完成
5 修改springboot项目的配置文件
这里只看关键配置,这里的用户名和密码要和之前配置文件里的一样,才能访问kafka
spring:kafka:producer: properties:security.protocol: SASL_PLAINTEXTsasl.mechanism: PLAINsasl.jaas.config: org.apache.kafka.common.security.plain.PlainLoginModule required username="admin" password="123456";consumer: properties:security.protocol: SASL_PLAINTEXTsasl.mechanism: PLAINsasl.jaas.config: org.apache.kafka.common.security.plain.PlainLoginModule required username="admin" password="123456";
注意:sasl.jaas.config配置项别忘了带; 要不然会报错
如果kafka客户端密码错误,则会报错