动态配置提供程序
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"}}
| 字段 | 类型 | 描述 | 是否必须 |
|---|---|---|---|
type | String | 动态配置提供程序类型 | 是: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 会将环境变量替换为对应的实际值。