Очистка ресурсов после уничтожения штормовой топологии - PullRequest
0 голосов
/ 06 марта 2019

У нас есть топология шторма, которая взаимодействует с базой данных MariaDB. Наши болты реализуют интерфейс IRichBolt и переопределяют методы жизненного цикла. Мы открываем соединение БД в нашем методе prepare и закрываем его в методе cleanup. Документация по методу cleanup гласит:

Вызывается, когда IBolt будет остановлен. Нет гарантии, что очистка будет вызвана, потому что супервизор уничтожает рабочие процессы -9 в кластере. Единственный контекст, в котором гарантированно вызывается очистка, - это уничтожение топологии при запуске Storm в локальном режиме

И команда kill -9 убивает процесс без очистки ресурсов. Таким образом, мы пришли к выводу, что при уничтожении топологии необязательно вызывать метод cleanup и соединение БД будет закрыто.

Итак, переходя к моему вопросу, у нас есть сценарий оболочки для развертывания топологии, который при выполнении уничтожает текущую топологию с таймаутом 0 и развертывает новую топологию. На уровне базы данных мы сталкиваемся с проблемой открытия многих соединений, что дает нам понять, что предыдущие соединения не были закрыты. (Открытая в предыдущей топологии).

Правильно ли наше предположение? Будет ли увеличение таймаута очищать все ресурсы?

1 Ответ

0 голосов
/ 06 марта 2019

Нет.Увеличение тайм-аута топологии не повлияет на то, как долго ваш работник будет очищаться.Когда вы используете, например, тайм-аут 30 с, это просто отключает носик и дает остальной части топологии 30 с для завершения обработки.

Вам нужно увеличить время, которое Storm позволяет работнику проводить до завершения работынасильственное убийство.Параметр https://github.com/apache/storm/blob/b07413670fa62fec077c92cb78fc711c3bda820c/storm-server/src/main/java/org/apache/storm/DaemonConfig.java#L780 позволяет указать, как долго Storm будет ждать перед отправкой kill -9.По умолчанию это 3 секунды.Вам нужно установить эту опцию в storm.yaml, настройка в конфигурации топологии не будет иметь никакого эффекта.

...