У меня есть приложение для обработки потока kafka, в котором используются библиотеки spring-cloud-stream. Это приложение использует 3 значения application.id для прослушивания 3 тем. Для двух из этих входных тем после обработки данных я помещаю sh сообщения в соответствующие выходные темы, которые затем использую для создания GlobalKTables следующим образом:
streamsBuilder.globalTable(firstSSTopic, Consumed.with(Serdes.String(), Serdes.String()),
Materialized.<String, String, KeyValueStore<Bytes, byte[]>>
as("ss-1")
.withKeySerde(Serdes.String())
.withValueSerde(Serdes.String()));
streamsBuilder.globalTable(secondSSTopic, Consumed.with(Serdes.String(), Serdes.String()),
Materialized.<String, String, KeyValueStore<Bytes, byte[]>>
as("ss-2")
.withKeySerde(Serdes.String())
.withValueSerde(Serdes.String()));
Итак, вопрос в том, что application.id использует ли он данные из "firstSSTopi c" и "secondSSTopi c"? Или это просто GlobalStreamThread как отдельный потребитель без какой-либо группы? Когда я проверяю каталог состояний по умолчанию (tmp / kafka-streams), я вижу файлы sst и log для обоих глобальных хранилищ состояний во всех трех каталогах application.id. Как мне этого избежать? Поскольку это займет в 3 раза больше места на диске и потенциально может привести к быстрому заполнению хранилища.