Spring управляемый KafkaTemplate предоставляет
template.send(record).addCallback(...
template.executeInTransaction(...
Теперь, допустим, у меня есть метод doWork (), который запускается в событии (скажем, в сообщении TCP / IP).
@Autowired
KafkaTemplate template;
// This method is triggered on a event
doWork(EventType event){
switch(event){
case Events.Type1 :
template.send(record); break;
case Events.Type2 :
// Question : How do I achieve a commit of all my previous sends here?
default : break;
}
}
По сути, мне нужно выполнить транзакцию, добавив @Transaction поверх doWork () или
template.executeInTransaction(...
в коде.Но я хочу собрать пару [template.send ()] и выполнить коммит после нескольких вызовов метода doWork (), как мне этого добиться?
В моих конфигурациях производителя включены транзакциии KafkaTransactionManager, подключенный к фабрике производителя.