Новые фичи в Apache Kafka - exactly once публикация сообщений, транзакции и прочее.

pavel trukhanov
some-tldrs-ru
Published in
1 min readMay 13, 2017

--

TLDR — схлопываются дубликаты сообщений при сетевых потерях, а еще будет можно делать кросс-партиционные транзакции.

Exactly once message producing

  • Если уведомление об успешном сохранении сообщения в очереди (ack) не доходит до продьюсера, то при переотправке сообщения оно сохранится как дубликат.
  • Теперь producer может передавать некую свою seq id, и это даёт возможность дедуплицировать сообщения в случае как описан выше.

Транзакции

  • Кафка научилась писать отдельный лог транзакций и делать двухфазный коммит.
  • Новый API продьюсера позволяет делать транзакции на несколько сообщений в разных партициях.
  • Kafka Консьюмеры могут использовать разные isolation level’ы: read_uncommited (будет поведение как раньше) и новый read_commited - тогда консьюмер будет получать сообщения только от уже закрытых транзакций.

Все это должно стать доступно в версии 0.11 с июня 2017. А еще обещают улучшение производительности за счёт нового батчевого формата.

--

--