Эволюция топологии кафка-потоков в производстве - PullRequest
0 голосов
/ 12 декабря 2018

У меня сложная топология, включающая в себя KStreams, KTables, объединения, повторное использование, фильтры, сквозные, ветвления, почтовые индексы и т. Д. С живыми клиентами по темам вывода.

Все входные, промежуточные и выходные темы являются темами на основе avro.

Как мне обрабатывать изменения в топологии (добавление новых шагов, новые темы ввода-промежуточного-вывода), зная, что kafka-streams поддерживает внутреннее состояние и журналы изменений, соответствующие следующим бизнес-требованиям:

  • без потери данных
  • без дублирования данных (в определенной степени)
  • без простоев

Ответ лежит где-то между использованием kafka-streams-application-reset илисоздание новой группы потребителей (идентификатор приложения)?

1 Ответ

0 голосов
/ 12 декабря 2018

В настоящее время в Kafka Streams отсутствует концепция контрольных точек или типов точек сохранения.

Если вам необходимо обновить существующие приложения, можно безопасно использовать новый application.id или сбросить существующие application.id.

Существуют сценарии, в которых необходимо определить новый application.id на основе изменений в топологии.

https://cwiki.apache.org/confluence/display/KAFKA/Kafka+Streams+Data+%28Re%29Processing+Scenarios

...