Может ли Apache Kafka обрабатывать транзакции?

мы планируем использовать Kafka в качестве центрального компонента в нашем хранилище данных, учитывая, что производитель способен обрабатывать транзакции (короче: откаты и коммиты).

Когда googling Kafka + Transactions, я нахожу много теоретических соображений о возможности того, как Kafka может обрабатывать транзакции, но на данный момент я не вижу никакой функции в java API, который поддерживает фиксации и откаты для производителя.

Кто-нибудь сделал некоторые впечатления от транзакций и Кафки и может дать мне подсказку?

Ответ 1

нет

Нет; Kafka не поддерживает транзакции.

Вы можете убедиться, что сообщение было создано для раздела, но после его создания вы не можете отменить это сообщение.

Начиная с версии 0.11.0 Apache Kafka поддерживает транзакции: https://cwiki.apache.org/confluence/display/KAFKA/Transactional+Messaging+in+Kafka

Ответ 3

Я думаю, что то, что вы ищете, в основном называется транзакционным обменом сообщениями в Kafka, где производители могут создавать сеанс (например, транзакционный сеанс) и отправлять сообщения в сеансах. Следовательно, он может выбрать либо совершить, либо прервать транзакцию.

[Источник]: Пожалуйста, прочитайте wiki для деталей