#apache-kafka #apache-kafka-streams
#apache-кафка #apache-kafka-streams #apache-kafka
Вопрос:
Я пытаюсь настроить свою топологию, чтобы изменить каталог по умолчанию, в котором хранятся хранилища состояния.
Я прочитал из документов, что свойство state.dir
— это то, что мне нужно изменить.
Значение по умолчанию равно /tmp/kafka-streams
, и я хочу изменить это на /opt/kafka-streams
, потому что в нашей производственной системе наш /tmp
каталог периодически очищается.
Мое приложение имеет только одну топологию, и я установил для свойства state.dir
значение /opt/kafka-streams
.
В журналах я вижу, что сначала печатается следующее, что подтверждает, что /opt/kafka-streams
используется:
| loglevel="INFO" | thread="main" | logger="org.apache.kafka.streams.StreamsConfig " StreamsConfig values:
application.id = my-application
application.server =
bootstrap.servers = [192.168.92.118:9092]
buffered.records.per.partition = 1000
cache.max.bytes.buffering = 10485760
client.id = my-application-client
commit.interval.ms = 30000
connections.max.idle.ms = 540000
...
...
...
state.dir = /opt/kafka-streams
Но потом … вскоре после приведенного выше журнала ниже печатается другая строка журнала, которая показывает, /tmp/kafka-streams
что все еще где-то используется:
| loglevel="INFO" | thread="main" | logger="org.apache.kafka.streams.StreamsConfig " StreamsConfig values:
application.id = my-application
application.server =
bootstrap.servers = [192.168.92.118:9092]
buffered.records.per.partition = 1000
cache.max.bytes.buffering = 10485760
client.id = my-application-client-StreamThread-1-consumer
...
...
...
state.dir = /tmp/kafka-streams
Мое приложение имеет только 1 топологию. Он использует processor api. Один процессор добавляет данные в хранилище состояния. Затем есть разделитель, который периодически считывает данные из хранилища состояния и выводит сообщения по теме вывода.
При построении своей топологии я использовал application.id=my-application
и client.id=my-application-client
. Но во 2-й строке журнала выше я вижу, client.id=my-application-client-StreamThread-1-consumer
и вот где state.dir=/tmp/kafka-streams
.
Есть ли другое место, где мне нужно настроить state.dir
при построении моей топологии?
Комментарии:
1. Не могли бы вы добавить все начальные журналы и конфигурацию?
2. Какую версию вы используете? Потоки Kafka, используемые для регистрации «недопустимой» конфигурации, что исправлено с тех пор
2.1
: github.com/apache/kafka/commit /…