Новые фичи в Apache Kafka - exactly once публикация сообщений, транзакции и прочее.
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. А еще обещают улучшение производительности за счёт нового батчевого формата.