Docker Kafka集群中如何配置带监听器前缀的SASL回调处理类
解决方法
Confluent 官方 Kafka Docker 镜像的配置项转环境变量遵循固定规则:将配置项的所有点号.替换为下划线_,所有字符转为大写,统一添加KAFKA_前缀即可生效。
对应场景转换结果
你需要的配置项listener.name.outside.plain.sasl.callback.handler.class转换后对应的环境变量为:KAFKA_LISTENER_NAME_OUTSIDE_PLAIN_SASL_CALLBACK_HANDLER_CLASS
两种部署方式的配置示例
docker run 命令示例
docker run -d \ -e KAFKA_LISTENER_NAME_OUTSIDE_PLAIN_SASL_CALLBACK_HANDLER_CLASS=com.yourcompany.YourCustomCallbackHandler \ -e CLASSPATH=/etc/kafka/jars/* \ -v /my/local/location:/etc/kafka \ # 其他Kafka常规配置,如监听器、端口映射等 confluentinc/cp-kafka:latest
docker compose 配置示例
version: '3.8' services: kafka: image: confluentinc/cp-kafka:latest environment: # 自定义回调处理类配置 KAFKA_LISTENER_NAME_OUTSIDE_PLAIN_SASL_CALLBACK_HANDLER_CLASS: com.yourcompany.YourCustomCallbackHandler CLASSPATH: /etc/kafka/jars/* # 其他常规Kafka配置示例 KAFKA_LISTENERS: INSIDE://0.0.0.0:9092,OUTSIDE://0.0.0.0:9093 KAFKA_ADVERTISED_LISTENERS: INSIDE://kafka:9092,OUTSIDE://localhost:9093 KAFKA_LISTENER_SECURITY_PROTOCOL_MAP: INSIDE:PLAINTEXT,OUTSIDE:SASL_PLAINTEXT KAFKA_SASL_ENABLED_MECHANISMS: PLAIN volumes: - /my/local/location:/etc/kafka # 按需添加端口映射、网络配置等
注意事项
- 监听器名称、SASL机制名要和实际配置完全匹配,转换时统一转为大写即可
- 确认挂载目录下的jar包权限,Kafka运行用户要有读取权限
- 若使用Apache官方非Confluent系Kafka镜像,旧版本不支持自动映射时,可通过
KAFKA_OPTS追加启动参数配置:-e KAFKA_OPTS="-Dlistener.name.outside.plain.sasl.callback.handler.class=com.yourcompany.YourCustomCallbackHandler"
内容的提问来源于stack exchange,提问作者user177933
相关产品推荐
相关产品推荐

