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

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

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

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

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

Но повлияет ли изменение каталога?

or

Могу ли я настроить БД состояний в каталоге приложения, а не в /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

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

Есть предположения?


person kuti    schedule 11.03.2019    source источник
comment
@ cricket_007: Есть мысли о последствиях изменения каталога государственного магазина? В моем случае, только сегодня я его изменил, и как ни странно, все сообщения полетели вниз по течению! Например. Данные из темы A - ›агрегат (..) -› для темы B, все события снова были созданы для темы B, но не повторно потреблены из A.   -  person Vassilis    schedule 29.04.2019


Ответы (1)


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

Причин несколько.

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

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

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

person Nishu Tayal    schedule 11.03.2019