如何将confluent.前缀变量映射为正确的Docker环境变量
Docker Compose 中通过环境变量设置Confluent配置项的方法
Confluent官方提供的组件Docker镜像内置了配置自动映射逻辑,不需要手动挂载修改配置文件,直接按规则写环境变量即可生效。
配置转换规则
所有原生配置项按以下规则转成环境变量名即可:
- 将配置项中的所有英文句号
.替换为下划线_ - 把替换后的字符串全部转为大写
你提到的两个配置项对应的环境变量名如下:
- 原配置
confluent.security.event.logger.exporter.kafka.topic.replicas→ 对应环境变量CONFLUENT_SECURITY_EVENT_LOGGER_EXPORTER_KAFKA_TOPIC_REPLICAS - 原配置
confluent.metrics.reporter.topic.replicas→ 对应环境变量CONFLUENT_METRICS_REPORTER_TOPIC_REPLICAS
配置注意事项
- 环境变量必须写在对应加载该配置的组件服务的
environment配置段下:confluent.security.event.logger.exporter.kafka.topic.replicas是Confluent Kafka Broker的专属配置,只需要加到Kafka服务的环境变量里即可;confluent.metrics.reporter.topic.replicas是所有开启指标上报的组件(Broker、Schema Registry、Kafka Connect、ksqlDB等)都支持的配置,需要给所有开启指标上报的服务都加上对应配置。 - 单节点测试环境建议把这两个值设为1,避免因为副本数要求大于可用节点数,导致安全事件主题、指标上报主题创建失败。
配置示例
以下是Kafka服务段的配置片段参考:
services: kafka: image: confluentinc/cp-kafka:7.6.0 environment: # 基础必填配置省略 KAFKA_NODE_ID: 1 KAFKA_PROCESS_ROLES: broker,controller KAFKA_LISTENERS: PLAINTEXT://:9092,CONTROLLER://:9093 KAFKA_CONTROLLER_QUORUM_VOTERS: 1@kafka:9093 # 自定义的两个副本配置 CONFLUENT_SECURITY_EVENT_LOGGER_EXPORTER_KAFKA_TOPIC_REPLICAS: 1 CONFLUENT_METRICS_REPORTER_TOPIC_REPLICAS: 1
容器启动时,内置的启动脚本会自动把这些环境变量转换回原生配置项,写入组件的生效配置文件中,不需要额外做其他操作。
内容的提问来源于stack exchange,提问作者ckorzhik
相关产品推荐
相关产品推荐

