Очистка надгробий и магазина ключей - PullRequest
1 голос
/ 26 февраля 2020

У меня есть несколько потребителей Kafka, реализованных в Java, и я внедряю отдельное приложение для проверки записей и их захоронения. Мы надеемся, что Kafka удалит государственные хранилища, поскольку сжимает темы.

Теперь ... Я немного запутался в разных типах магазинов, созданных Kafka. Для каждого типа хранилища я хотел бы знать:

  • Удаляется ли это, когда Кафка удаляет старые записи в соответствующих топиках c?
  • Удаляется ли это при захоронении записей в соответствующей топи c?
  • Мы застряли с ней?

Виды магазинов, которые я вижу, следующие:

  1. KSTREAM -AGGREGATE-STATE-STORE журнал изменений
  2. Перераспределение KSTREAM-AGGREGATE-STATE-STORE
  3. (KTABLE) журнал изменений STATE-STORE
  4. перераспределение KSTREAM-KEY-SELECT

Для топологии потока, использующей функцию Aggregate, у нас уже есть стратегия надгробной плиты, которая должна охватывать хранилища типа # 1. Мы отправляем нулевое сообщение в потоковое приложение, и оно возвращает его как совокупный результат.

Для хранилищ типа # 3 я буду запускать надгробное приложение на соответствующем ktable. Я ожидаю, что список изменений сократится.

Однако, для магазинов типа # 2 и # 4, я понятия не имею, как они очищаются. Они соответствуют функциям selectKey () + leftJoin () в топологии моего потребителя. Тем не менее, они привязаны к топологии kstream-centri c, поэтому я не знаю, что делать, чтобы их очистить. Любые предложения, которые не включают в себя остановку брокера?

1 Ответ

0 голосов
/ 08 марта 2020

# 2 и # 4 не являются хранилищами - они являются внутренними темами, созданными Kafka Streams.

Нет способа явно очистить эти разделы перераспределения, но Kafka автоматически очистит их на основе * 1003 сервера kafka * config (по умолчанию 7 дней, если не указано явно), поскольку эти темы (# 2 и # 4) создаются Kafka Streams с cleanup.policy = delete.

...