Что такое кафка транзакций? - PullRequest
1 голос
/ 27 марта 2020

Что такое транзакции в Кафке? Конечно, я знаю обычные sql транзакции: A transaction is a sequence of operations performed (using one or more SQL statements) on a database as a single logical unit of work

Так значит ли это, что можно отправить что-то в Kafka, и если что-то пойдет не так, оно будет откатано (стереть сообщения из разделов?) И можно ли писать в разные темы в транзакции?

1 Ответ

2 голосов
/ 27 марта 2020

Transactional Producer позволяет отправлять данные в несколько разделов и гарантирует, что все эти записи либо зафиксированы, либо отклонены. Это делается путем группировки нескольких вызовов на send() (и дополнительно sendOffsetsToTransaction()) в транзакцию.

После начала транзакции вы можете позвонить commitTransaction() или abortTransaction() для его завершения.

Потребители, настроенные на isolation.level=read_committed, не будут получать сообщения от прерванных транзакций.

Для получения дополнительной информации Подробности смотрите в разделе Семантика доставки сообщений в документах

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...