Почему состояние kafka streams dir находится в / tmp / kafka-streams? - PullRequest
0 голосов
/ 11 марта 2019

Я не уверен, что он уже ответил. Поскольку я не получил надлежащего объяснения, отправляю свой вопрос здесь.

Почему потоки кафки state.dir хранятся в /tmp/kafka-streams?

Я знаю, что могу изменить путь, указав конфигурацию dir состояния в коде потока, как показано ниже

StreamsConfig.STATE_DIR_CONFIG,"/var/abc-Streams"

Но будет ли какое-либо влияние на изменение каталога?

или

Можно ли настроить БД состояния в каталоге приложения, а не в /tmp.

Согласно соответствующей документации, для: Stateful операций:

automatically creates and manages such state stores when you are calling stateful operators such as count() or aggregate(), or when you are windowing a stream

но не указал, где именно он хранится.

ЛЮБЫЕ мысли?

1 Ответ

1 голос
/ 12 марта 2019

Почему kafka streams state.dir хранится в / tmp / kafka-streams?

Есть несколько причин.

  1. Обычно каталог /tmp имеет разрешение на запись по умолчанию. Так что вам не нужно бороться с разрешениями на запись как новичок.
  2. /tmp каталог - недолговечный каталог. При каждой перезагрузке системы она очищается, поэтому вы не испытываете переполнения дискового хранилища, если забыли удалить state.dir. Недостатком является то, что вы теряете состояния из предыдущего запуска, поэтому вам нужно восстановить состояния с нуля.

Если вы хотите повторно использовать состояния, хранящиеся в state.dir, вы должны хранить его где-нибудь, кроме /tmp.

Все хранилища состояний хранятся в месте, указанном в state.dir. Если не указано, это каталог /tmp/kafka-streams/<app-id>.

...