跳转到主要内容

动态配置提供程序

Druid 依赖动态配置提供程序(Dynamic Config Providers)在 Druid 扩展内提供多组相关的凭据、密钥和配置。动态配置提供程序旨在最终取代 PasswordProvider

默认情况下,Druid 包含一个环境变量动态配置提供程序,该程序支持 Kafka 摄取中的 Kafka 消费者配置。

要开发在 Druid 进程启动时注册的 DynamicConfigProvider 接口的自定义扩展,请参阅 添加新的 DynamicConfigProvider 实现

环境变量动态配置提供程序

您可以使用环境变量动态配置提供程序 (EnvironmentVariableDynamicConfigProvider) 通过系统环境变量来存储密码或其他敏感信息,而不是使用明文配置。

环境变量动态配置提供程序使用以下语法:

druid.dynamic.config.provider={"type": "environment","variables":{"secret1": "SECRET1_VAR","secret2": "SECRET2_VAR"}}
字段类型描述是否必须
typeString动态配置提供程序类型是:environment
变量映射 (Map)存储配置信息的环境变量

使用环境变量配置提供程序时,请考虑以下事项:

  • 如果您手动指定了配置键值对,并对同一个键使用了动态配置提供程序,Druid 将使用来自动态配置提供程序的值。
  • 在 supervisor 规范中使用时,环境变量必须对运行 Overlord 服务和 Peon 服务的系统用户可见。

以下示例展示了如何配置环境变量以存储 Kafka 的 SSL 密钥和信任库密码。

在 Overlord 和 Peon 机器上,为运行 Druid 服务的系统用户设置以下环境变量:

export SSL_KEY_PASSWORD=mysecretkeypassword
export SSL_KEYSTORE_PASSWORD=mysecretkeystorepassword
export SSL_TRUSTSTORE_PASSWORD=mysecrettruststorepassword

在 supervisor 规范中定义消费者属性时,使用动态配置提供程序来引用环境变量:

...
"consumerProperties": {
"bootstrap.servers": "localhost:9092",
"ssl.keystore.location": "/opt/kafka/config/kafka01.keystore.jks",
"ssl.truststore.location": "/opt/kafka/config/kafka.truststore.jks",
"druid.dynamic.config.provider": {
"type": "environment",
"variables": {
"ssl.key.password": "SSL_KEY_PASSWORD",
"ssl.keystore.password": "SSL_KEYSTORE_PASSWORD",
"ssl.truststore.password": "SSL_TRUSTSTORE_PASSWORD"
}
}
},
...

连接到 Kafka 时,Druid 会将环境变量替换为对应的实际值。