Package org.sdase.commons.server.kafka
Class KafkaBundle<C extends io.dropwizard.Configuration>
- java.lang.Object
-
- org.sdase.commons.server.kafka.KafkaBundle<C>
-
- All Implemented Interfaces:
io.dropwizard.ConfiguredBundle<C>
public class KafkaBundle<C extends io.dropwizard.Configuration> extends java.lang.Object implements io.dropwizard.ConfiguredBundle<C>
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description static class
KafkaBundle.Builder<T extends io.dropwizard.Configuration>
static interface
KafkaBundle.FinalBuilder<T extends io.dropwizard.Configuration>
static interface
KafkaBundle.InitialBuilder
-
Field Summary
Fields Modifier and Type Field Description static java.lang.String
EXTERNAL_HEALTHCHECK_NAME
static java.lang.String
HEALTHCHECK_NAME
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description static KafkaBundle.InitialBuilder
builder()
<K,V>
org.apache.kafka.clients.consumer.KafkaConsumer<K,V>createConsumer(org.apache.kafka.common.serialization.Deserializer<K> keyDeSerializer, org.apache.kafka.common.serialization.Deserializer<V> valueDeSerializer, java.lang.String consumerConfigName)
creates a new Kafka Consumer with deserializers and consumer config<K,V>
org.apache.kafka.clients.consumer.KafkaConsumer<K,V>createConsumer(org.apache.kafka.common.serialization.Deserializer<K> keyDeSerializer, org.apache.kafka.common.serialization.Deserializer<V> valueDeSerializer, ConsumerConfig consumerConfig, int instanceId)
creates a new Kafka Consumer with deserializers and consumer config<K,V>
java.util.List<MessageListener<K,V>>createMessageListener(MessageListenerRegistration<K,V> registration)
Creates a number of message listeners with the parameters given in theMessageListenerRegistration
.<K,V>
org.apache.kafka.clients.producer.Producer<K,V>createProducer(org.apache.kafka.common.serialization.Serializer<K> keySerializer, org.apache.kafka.common.serialization.Serializer<V> valueSerializer, java.lang.String producerConfigName)
Creates a new KafkaProducer
with serializers and producer config<K,V>
org.apache.kafka.clients.producer.Producer<K,V>createProducer(org.apache.kafka.common.serialization.Serializer<K> keySerializer, org.apache.kafka.common.serialization.Serializer<V> valueSerializer, ProducerConfig producerConfig)
Creates a new KafkaProducer
with serializers and producer configConsumerConfig
getConsumerConfiguration(java.lang.String name)
returns a @ConsumerConfig
as defined in the configurationProducerConfig
getProducerConfiguration(java.lang.String name)
returns a @ProducerConfig
as defined in the configurationTopicConfig
getTopicConfiguration(java.lang.String key)
Provides aTopicConfig
that is generated from the values within the configuration yamlvoid
initialize(io.dropwizard.setup.Bootstrap<?> bootstrap)
<K,V>
MessageProducer<K,V>registerProducer(ProducerRegistration<K,V> registration)
creates a @MessageProducer
based on the data in theProducerRegistration
void
run(C configuration, io.dropwizard.setup.Environment environment)
-
-
-
Field Detail
-
HEALTHCHECK_NAME
public static final java.lang.String HEALTHCHECK_NAME
- See Also:
- Constant Field Values
-
EXTERNAL_HEALTHCHECK_NAME
public static final java.lang.String EXTERNAL_HEALTHCHECK_NAME
- See Also:
- Constant Field Values
-
-
Method Detail
-
builder
public static KafkaBundle.InitialBuilder builder()
-
initialize
public void initialize(io.dropwizard.setup.Bootstrap<?> bootstrap)
- Specified by:
initialize
in interfaceio.dropwizard.ConfiguredBundle<C extends io.dropwizard.Configuration>
-
run
public void run(C configuration, io.dropwizard.setup.Environment environment)
- Specified by:
run
in interfaceio.dropwizard.ConfiguredBundle<C extends io.dropwizard.Configuration>
-
getTopicConfiguration
public TopicConfig getTopicConfiguration(java.lang.String key) throws ConfigurationException
Provides aTopicConfig
that is generated from the values within the configuration yaml- Parameters:
key
- the name of the topic configuration- Returns:
- the configured topic configuration
- Throws:
ConfigurationException
- if no such topic exists in the configuration
-
createMessageListener
public <K,V> java.util.List<MessageListener<K,V>> createMessageListener(MessageListenerRegistration<K,V> registration)
Creates a number of message listeners with the parameters given in theMessageListenerRegistration
.- Type Parameters:
K
- the key object typeV
- the value object type- Parameters:
registration
- the registration configuration- Returns:
- the newly registered message listeners
-
registerProducer
public <K,V> MessageProducer<K,V> registerProducer(ProducerRegistration<K,V> registration) throws ConfigurationException
creates a @MessageProducer
based on the data in theProducerRegistration
if the kafka bundle is disabled, null is returned
- Type Parameters:
K
- key clazz typeV
- value clazz type- Parameters:
registration
- the configuration object- Returns:
- message producer
- Throws:
ConfigurationException
- if theregistration
has noProducerRegistration.getProducerConfig()
and there is no configuration available with the same name as defined inProducerRegistration.getProducerConfigName()
-
createConsumer
public <K,V> org.apache.kafka.clients.consumer.KafkaConsumer<K,V> createConsumer(org.apache.kafka.common.serialization.Deserializer<K> keyDeSerializer, org.apache.kafka.common.serialization.Deserializer<V> valueDeSerializer, java.lang.String consumerConfigName)
creates a new Kafka Consumer with deserializers and consumer configNote: after creating a
KafkaConsumer
you must alwaysKafkaConsumer.close()
it to avoid resource leaks.- Type Parameters:
K
- Key object typeV
- Value object type- Parameters:
keyDeSerializer
- deserializer for key objects. If null, value from config or defaultStringDeserializer
will be usedvalueDeSerializer
- deserializer for value objects. If null, value from config or * default *StringDeserializer
* will be usedconsumerConfigName
- name of a valid consumer config- Returns:
- a new kafka consumer
-
createConsumer
public <K,V> org.apache.kafka.clients.consumer.KafkaConsumer<K,V> createConsumer(org.apache.kafka.common.serialization.Deserializer<K> keyDeSerializer, org.apache.kafka.common.serialization.Deserializer<V> valueDeSerializer, ConsumerConfig consumerConfig, int instanceId)
creates a new Kafka Consumer with deserializers and consumer configNote: after creating a
KafkaConsumer
you must alwaysKafkaConsumer.close()
it to avoid resource leaks.- Type Parameters:
K
- Key object typeV
- Value object type- Parameters:
keyDeSerializer
- deserializer for key objects. If null, value from config or defaultStringDeserializer
will be usedvalueDeSerializer
- deserializer for value objects. If null, value from config or * default *StringDeserializer
* will be usedconsumerConfig
- config of the consumer. If null a consumer with default config values is created.instanceId
- the id of the consumer that is appended to the client ID- Returns:
- a new kafka consumer
-
createProducer
public <K,V> org.apache.kafka.clients.producer.Producer<K,V> createProducer(org.apache.kafka.common.serialization.Serializer<K> keySerializer, org.apache.kafka.common.serialization.Serializer<V> valueSerializer, ProducerConfig producerConfig)
Creates a new KafkaProducer
with serializers and producer configNote: after creating a Kafka
Producer
you must alwaysProducer.close()
it to avoid resource leaks.- Type Parameters:
K
- Key object typeV
- Value object type- Parameters:
keySerializer
- deserializer for key objects. If null, value from config or defaultStringSerializer
will be usedvalueSerializer
- deserializer for value objects. If null, value from config or * default *StringSerializer
* will be usedproducerConfig
- config of the producer- Returns:
- a new kafka producer
-
createProducer
public <K,V> org.apache.kafka.clients.producer.Producer<K,V> createProducer(org.apache.kafka.common.serialization.Serializer<K> keySerializer, org.apache.kafka.common.serialization.Serializer<V> valueSerializer, java.lang.String producerConfigName)
Creates a new KafkaProducer
with serializers and producer configNote: after creating a Kafka
Producer
you must alwaysProducer.close()
it to avoid resource leaks.- Type Parameters:
K
- Key object typeV
- Value object type- Parameters:
keySerializer
- deserializer for key objects. If null, value from config or defaultStringSerializer
will be usedvalueSerializer
- deserializer for value objects. If null, value from config or efaultStringSerializer
will be usedproducerConfigName
- name of the producer config to be used- Returns:
- a new kafka producer
-
getConsumerConfiguration
public ConsumerConfig getConsumerConfiguration(java.lang.String name)
returns a @ConsumerConfig
as defined in the configuration- Parameters:
name
- name of the consumer in the configuration- Returns:
- Consumer Configuration
- Throws:
ConfigurationException
- when the configuration does not exist
-
getProducerConfiguration
public ProducerConfig getProducerConfiguration(java.lang.String name)
returns a @ProducerConfig
as defined in the configuration- Parameters:
name
- name of the producer in the configuration- Returns:
- Producer Configuration
- Throws:
ConfigurationException
- when the configuration does not exist
-
-