Reputation: 196
In my java project we created kafka producer and consumers from different places as and when required. Now i want to configure SSL on brokers. its working perfectly fine if i configure below properties on each producer and consumer in 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, "");
but i have to set these properties on each producer and consumer in my application. is there any way by which i can set these common properties at process level (e.g system variable) , so that i can avoid code changes at multiple places.
For a reference : I recently configured ssl on solr , and solrj client has this facility that we can set system property and solrj clinet will read it internally.
Upvotes: 0
Views: 437
Reputation: 191743
Kafka clients do not fetch configs from System properties outside of JAAS config (i.e. standard JVM properties)
Sounds like you just need a standard library refactoring or use a higher level config templating like Spring offers
Upvotes: 1