Почему Kafka Streams принудительно отключает ведение журналов для хранилищ состояний GlobalKTable? - PullRequest
0 голосов
/ 08 октября 2018

Почему в глобальной таблице не должно быть включено ведение журнала в kafka?

код:

if (loggingEnabled) {
    throw new TopologyException("StateStore " + storeName + " for global table must not have logging enabled.");
}

При перезапуске приложения kafka все хранилище данных в глобальном хранилище очищается.Как я мог сделать это терпимость.

1 Ответ

0 голосов
/ 09 октября 2018

GlobalKTable s используют тему ввода, чтобы гарантировать отказоустойчивость.Таким образом, я не уверен, что вы подразумеваете под

Когда я перезапускаю свое приложение kafka, все хранилище данных в globalstore становится чистым.

Пока вводится тема вводаправильно настроен с включенным сжатием журнала, состояние GlobalKTable будет воссоздано при запуске, даже если вы удалите это состояние локально.

Включение ведения журнала не имеет смысла, потому что каждый экземпляр KafkaStreams загружает весь GlobalKTable данные (т. е. данные передаются на все экземпляры).Темы журнала изменений предназначены для общего состояния с использованием одного раздела-раздела на шард.Таким образом, оба понятия не совпадают, а противоречат друг другу.

...