背景
最近在学习kafka消息队列,了解到kafka是通过SASL来进行用户认证的。起初,因为btinami/kafka
官方的一段内容让我以为SASL和TLS是绑定使用的,导致心思花在解决TLS配置上去,官方原文如下:
You must also use your own certificates for SSL. You can drop your Java Key Stores or PEM files into
/opt/bitnami/kafka/config/certs
. If the JKS or PEM certs are password protected (recommended), you will need to provide it to get access to the keystores:
后来发现其实是可以单独使用SASL,而且官方文档没有完整的配置资料,最后在Issue上找到解决方案。
过程
1.编写一个包含SASL配置的docker-compose.yml文件
version: "2"
services:
kafka:
image: 'bitnami/kafka:latest'
hostname: localhost
ports:
- '9092:9092'
environment:
- ALLOW_PLAINTEXT_LISTENER=yes
- KAFKA_CFG_NODE_ID=0
- KAFKA_CFG_PROCESS_ROLES=controller,broker
- KAFKA_CLIENT_LISTENER_NAME=CLIENT
- KAFKA_CFG_CONTROLLER_LISTENER_NAMES=CONTROLLER
- KAFKA_CFG_LISTENERS=CLIENT://:9092,CONTROLLER://:9093
- KAFKA_CFG_LISTENER_SECURITY_PROTOCOL_MAP=CONTROLLER