Package org.springframework.kafka.core
Class ProducerFactoryUtils
- java.lang.Object
-
- org.springframework.kafka.core.ProducerFactoryUtils
-
public final class ProducerFactoryUtils extends java.lang.Object
Helper class for managing a Spring based KafkaDefaultKafkaProducerFactory
in particular for obtaining transactional Kafka resources for a given ProducerFactory.Mainly for internal use within the framework.
-
-
Field Summary
Fields Modifier and Type Field Description static java.time.Duration
DEFAULT_CLOSE_TIMEOUT
The default close timeout (5 seconds).
-
Method Summary
All Methods Static Methods Concrete Methods Modifier and Type Method Description static <K,V>
KafkaResourceHolder<K,V>getTransactionalResourceHolder(ProducerFactory<K,V> producerFactory)
Obtain a Producer that is synchronized with the current transaction, if any.static <K,V>
KafkaResourceHolder<K,V>getTransactionalResourceHolder(ProducerFactory<K,V> producerFactory, java.lang.String txIdPrefix, java.time.Duration closeTimeout)
Obtain a Producer that is synchronized with the current transaction, if any.static <K,V>
KafkaResourceHolder<K,V>getTransactionalResourceHolder(ProducerFactory<K,V> producerFactory, java.time.Duration closeTimeout)
Obtain a Producer that is synchronized with the current transaction, if any.static <K,V>
voidreleaseResources(KafkaResourceHolder<K,V> resourceHolder)
-
-
-
Method Detail
-
getTransactionalResourceHolder
public static <K,V> KafkaResourceHolder<K,V> getTransactionalResourceHolder(ProducerFactory<K,V> producerFactory)
Obtain a Producer that is synchronized with the current transaction, if any.- Type Parameters:
K
- the key type.V
- the value type.- Parameters:
producerFactory
- the ProducerFactory to obtain a Channel for- Returns:
- the resource holder.
-
getTransactionalResourceHolder
public static <K,V> KafkaResourceHolder<K,V> getTransactionalResourceHolder(ProducerFactory<K,V> producerFactory, java.time.Duration closeTimeout)
Obtain a Producer that is synchronized with the current transaction, if any.- Type Parameters:
K
- the key type.V
- the value type.- Parameters:
producerFactory
- the ProducerFactory to obtain a Channel forcloseTimeout
- the producer close timeout.- Returns:
- the resource holder.
- Since:
- 2.1.14
-
getTransactionalResourceHolder
public static <K,V> KafkaResourceHolder<K,V> getTransactionalResourceHolder(ProducerFactory<K,V> producerFactory, @Nullable java.lang.String txIdPrefix, java.time.Duration closeTimeout)
Obtain a Producer that is synchronized with the current transaction, if any.- Type Parameters:
K
- the key type.V
- the value type.- Parameters:
producerFactory
- the ProducerFactory to obtain a Channel fortxIdPrefix
- the transaction id prefix; if null, the producer factory prefix is used.closeTimeout
- the producer close timeout.- Returns:
- the resource holder.
- Since:
- 2.3
-
releaseResources
public static <K,V> void releaseResources(@Nullable KafkaResourceHolder<K,V> resourceHolder)
-
-