kafka java 客户端是否提供进程级(系统变量)属性支持?
Does kafka java client provides process level (system variable) properties support?
在我的 java 项目中,我们根据需要从不同的地方创建了 kafka 生产者和消费者。现在我想在代理上配置 SSL。
如果我在 java :
中为每个生产者和消费者配置以下属性,它的工作非常好
kafkaClientProperties.put(CommonClientConfigs.SECURITY_PROTOCOL_CONFIG, "SSL");
kafkaClientProperties.put(SslConfigs.SSL_KEYSTORE_LOCATION_CONFIG, this.keystore);
kafkaClientProperties.put(SslConfigs.SSL_KEYSTORE_PASSWORD_CONFIG, this.keyStorePassword);
kafkaClientProperties.put(SslConfigs.SSL_TRUSTSTORE_LOCATION_CONFIG, this.trustStore);
kafkaClientProperties.put(SslConfigs.SSL_TRUSTSTORE_PASSWORD_CONFIG, this.trustStorePassword);
kafkaClientProperties.put(SslConfigs.SSL_ENDPOINT_IDENTIFICATION_ALGORITHM_CONFIG, "");
但我必须在我的应用程序中为每个生产者和消费者设置这些属性。有什么方法可以在进程级别设置这些公共属性(例如系统变量),这样我就可以避免在多个地方更改代码。
供参考:
我最近在 solr 上配置了 ssl ,而 solrj 客户端有这个设施,我们可以设置系统 属性 并且 solrj clinet 将在内部读取它。
Kafka 客户端不会从 JAAS 配置之外的系统属性(即标准 JVM 属性)获取配置
听起来您只需要重构标准库或使用更高级别的配置模板,例如 Spring 提供
在我的 java 项目中,我们根据需要从不同的地方创建了 kafka 生产者和消费者。现在我想在代理上配置 SSL。 如果我在 java :
中为每个生产者和消费者配置以下属性,它的工作非常好 kafkaClientProperties.put(CommonClientConfigs.SECURITY_PROTOCOL_CONFIG, "SSL");
kafkaClientProperties.put(SslConfigs.SSL_KEYSTORE_LOCATION_CONFIG, this.keystore);
kafkaClientProperties.put(SslConfigs.SSL_KEYSTORE_PASSWORD_CONFIG, this.keyStorePassword);
kafkaClientProperties.put(SslConfigs.SSL_TRUSTSTORE_LOCATION_CONFIG, this.trustStore);
kafkaClientProperties.put(SslConfigs.SSL_TRUSTSTORE_PASSWORD_CONFIG, this.trustStorePassword);
kafkaClientProperties.put(SslConfigs.SSL_ENDPOINT_IDENTIFICATION_ALGORITHM_CONFIG, "");
但我必须在我的应用程序中为每个生产者和消费者设置这些属性。有什么方法可以在进程级别设置这些公共属性(例如系统变量),这样我就可以避免在多个地方更改代码。
供参考: 我最近在 solr 上配置了 ssl ,而 solrj 客户端有这个设施,我们可以设置系统 属性 并且 solrj clinet 将在内部读取它。
Kafka 客户端不会从 JAAS 配置之外的系统属性(即标准 JVM 属性)获取配置
听起来您只需要重构标准库或使用更高级别的配置模板,例如 Spring 提供