Heroku Kafka Connection Helper
A Java library to help configure Kafka client connection Properties from Heroku Kafka environment variables.
Usage
Include this library in your application as a Maven dependency:
<dependency>
<groupId>com.adamthody</groupId>
<artifactId>heroku-kafka-connection-helper</artifactId>
<version>0.1.9</version>
</dependency>
Configuring a Client
Calling HerokuKafkaConnectionHelper.getConfigProperties()
will return a Properties object that has the appropriate connection properties set, as per the environment variables available.
Based on the URL scheme of the KAFKA_URL
environment variable, the properties will either be for a simple plaintext connection, or it will configure an SSL connection, including the KeyStore and TrustStore.
Heroku Kafka uses SSL by default, but by setting KAFKA_URL
locally, you can also test against a local cluster with a plaintext connection for local development without having to modify code.
Properties properties = HerokuKafkaConnectionHelper.getConfigProperties();
... // Additional properties
KafkaConsumer<Integer, String> consumer = new KafkaConsumer<>(properties);
If you're using Spring's ProducerFactory
or ConsumerFactory
, you may prefer to get your connection configuration as a Map.
Map<String, Object> configMap = HerokuKafkaConnectionHelper.getConfigMap();
... // Additional properties
ProducerFactory<Integer, String> producer = new DefaultKafkaProducerFactory<>(configMap);