
dev.vality.testcontainers.annotations.kafka.config.KafkaProducer Maven / Gradle / Ivy
package dev.vality.testcontainers.annotations.kafka.config;
import dev.vality.testcontainers.annotations.kafka.KafkaTestcontainer;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.springframework.kafka.core.KafkaTemplate;
/**
* Обертка над {@link KafkaTemplate}, используется для отправки сообщений в тестовый топик
* Пример использования {@link KafkaTestcontainer} с {@link KafkaProducer} — в
* magista
*
Пример
* {@code
* @Autowired
* private KafkaProducer> testThriftKafkaProducer;
*
* ...
*
* testThriftKafkaProducer.send(invoicingTopicName, sinkEvent);
*
* ...
* }
*
* @see KafkaProducerConfig KafkaProducerConfig
*/
@RequiredArgsConstructor
@Slf4j
public class KafkaProducer {
private final KafkaTemplate kafkaTemplate;
public void send(String topic, T payload) {
log.info("Sending payload='{}' to topic='{}'", payload, topic);
kafkaTemplate.send(topic, payload)
.join();
kafkaTemplate.getProducerFactory().reset();
}
public void send(String topic, String key, T payload) {
log.info("Sending key='{}' payload='{}' to topic='{}'", key, payload, topic);
kafkaTemplate.send(topic, key, payload)
.join();
kafkaTemplate.getProducerFactory().reset();
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy