Class ReactiveKafkaProducerTemplate<K,V>
- java.lang.Object
-
- org.springframework.kafka.core.reactive.ReactiveKafkaProducerTemplate<K,V>
-
- Type Parameters:
K
- the key type.V
- the value type.
- All Implemented Interfaces:
java.lang.AutoCloseable
,org.springframework.beans.factory.DisposableBean
public class ReactiveKafkaProducerTemplate<K,V> extends java.lang.Object implements java.lang.AutoCloseable, org.springframework.beans.factory.DisposableBean
Reactive kafka producer operations implementation.- Since:
- 2.3.0
-
-
Constructor Summary
Constructors Constructor Description ReactiveKafkaProducerTemplate(reactor.kafka.sender.SenderOptions<K,V> senderOptions)
ReactiveKafkaProducerTemplate(reactor.kafka.sender.SenderOptions<K,V> senderOptions, RecordMessageConverter messageConverter)
-
Method Summary
All Methods Instance Methods Concrete Methods Deprecated Methods Modifier and Type Method Description void
close()
void
destroy()
<T> reactor.core.publisher.Mono<T>
doOnProducer(java.util.function.Function<org.apache.kafka.clients.producer.Producer<K,V>,? extends T> action)
reactor.core.publisher.Mono<?>
flush()
Deprecated.- flush does not make sense in the context of a reactive flow since, the send completion signal is a send result, which implies that a flush is redundant.reactor.core.publisher.Flux<reactor.util.function.Tuple2<org.apache.kafka.common.MetricName,? extends org.apache.kafka.common.Metric>>
metricsFromProducer()
reactor.core.publisher.Flux<org.apache.kafka.common.PartitionInfo>
partitionsFromProducerFor(java.lang.String topic)
reactor.core.publisher.Mono<reactor.kafka.sender.SenderResult<java.lang.Void>>
send(java.lang.String topic, int partition, long timestamp, K key, V value)
reactor.core.publisher.Mono<reactor.kafka.sender.SenderResult<java.lang.Void>>
send(java.lang.String topic, int partition, K key, V value)
reactor.core.publisher.Mono<reactor.kafka.sender.SenderResult<java.lang.Void>>
send(java.lang.String topic, K key, V value)
reactor.core.publisher.Mono<reactor.kafka.sender.SenderResult<java.lang.Void>>
send(java.lang.String topic, org.springframework.messaging.Message<?> message)
reactor.core.publisher.Mono<reactor.kafka.sender.SenderResult<java.lang.Void>>
send(java.lang.String topic, V value)
reactor.core.publisher.Mono<reactor.kafka.sender.SenderResult<java.lang.Void>>
send(org.apache.kafka.clients.producer.ProducerRecord<K,V> record)
<T> reactor.core.publisher.Flux<reactor.kafka.sender.SenderResult<T>>
send(org.reactivestreams.Publisher<? extends reactor.kafka.sender.SenderRecord<K,V,T>> records)
<T> reactor.core.publisher.Mono<reactor.kafka.sender.SenderResult<T>>
send(reactor.kafka.sender.SenderRecord<K,V,T> record)
<T> reactor.core.publisher.Flux<reactor.kafka.sender.SenderResult<T>>
sendTransactionally(org.reactivestreams.Publisher<? extends reactor.kafka.sender.SenderRecord<K,V,T>> records)
<T> reactor.core.publisher.Mono<reactor.kafka.sender.SenderResult<T>>
sendTransactionally(reactor.kafka.sender.SenderRecord<K,V,T> record)
reactor.kafka.sender.TransactionManager
transactionManager()
-
-
-
Constructor Detail
-
ReactiveKafkaProducerTemplate
public ReactiveKafkaProducerTemplate(reactor.kafka.sender.SenderOptions<K,V> senderOptions)
-
ReactiveKafkaProducerTemplate
public ReactiveKafkaProducerTemplate(reactor.kafka.sender.SenderOptions<K,V> senderOptions, RecordMessageConverter messageConverter)
-
-
Method Detail
-
sendTransactionally
public <T> reactor.core.publisher.Flux<reactor.kafka.sender.SenderResult<T>> sendTransactionally(org.reactivestreams.Publisher<? extends reactor.kafka.sender.SenderRecord<K,V,T>> records)
-
sendTransactionally
public <T> reactor.core.publisher.Mono<reactor.kafka.sender.SenderResult<T>> sendTransactionally(reactor.kafka.sender.SenderRecord<K,V,T> record)
-
send
public reactor.core.publisher.Mono<reactor.kafka.sender.SenderResult<java.lang.Void>> send(java.lang.String topic, V value)
-
send
public reactor.core.publisher.Mono<reactor.kafka.sender.SenderResult<java.lang.Void>> send(java.lang.String topic, K key, V value)
-
send
public reactor.core.publisher.Mono<reactor.kafka.sender.SenderResult<java.lang.Void>> send(java.lang.String topic, int partition, K key, V value)
-
send
public reactor.core.publisher.Mono<reactor.kafka.sender.SenderResult<java.lang.Void>> send(java.lang.String topic, int partition, long timestamp, K key, V value)
-
send
public reactor.core.publisher.Mono<reactor.kafka.sender.SenderResult<java.lang.Void>> send(java.lang.String topic, org.springframework.messaging.Message<?> message)
-
send
public reactor.core.publisher.Mono<reactor.kafka.sender.SenderResult<java.lang.Void>> send(org.apache.kafka.clients.producer.ProducerRecord<K,V> record)
-
send
public <T> reactor.core.publisher.Mono<reactor.kafka.sender.SenderResult<T>> send(reactor.kafka.sender.SenderRecord<K,V,T> record)
-
send
public <T> reactor.core.publisher.Flux<reactor.kafka.sender.SenderResult<T>> send(org.reactivestreams.Publisher<? extends reactor.kafka.sender.SenderRecord<K,V,T>> records)
-
flush
@Deprecated public reactor.core.publisher.Mono<?> flush()
Deprecated.- flush does not make sense in the context of a reactive flow since, the send completion signal is a send result, which implies that a flush is redundant. If you use this method with reactor-kafka 1.3 or later, it must be scheduled to avoid a deadlock; see https://issues.apache.org/jira/browse/KAFKA-10790 (since 2.7).Flush the producer.- Returns:
Mono.empty()
.
-
partitionsFromProducerFor
public reactor.core.publisher.Flux<org.apache.kafka.common.PartitionInfo> partitionsFromProducerFor(java.lang.String topic)
-
metricsFromProducer
public reactor.core.publisher.Flux<reactor.util.function.Tuple2<org.apache.kafka.common.MetricName,? extends org.apache.kafka.common.Metric>> metricsFromProducer()
-
doOnProducer
public <T> reactor.core.publisher.Mono<T> doOnProducer(java.util.function.Function<org.apache.kafka.clients.producer.Producer<K,V>,? extends T> action)
-
transactionManager
public reactor.kafka.sender.TransactionManager transactionManager()
-
destroy
public void destroy()
- Specified by:
destroy
in interfaceorg.springframework.beans.factory.DisposableBean
-
close
public void close()
- Specified by:
close
in interfacejava.lang.AutoCloseable
-
-