Сделайте RabbitMQ долговечными / постоянными очередями после перезапуска Kubernetes pod - PullRequest
0 голосов
/ 21 июня 2019

Наше приложение использует RabbitMQ только с одним узлом. Он запускается в одной капсуле Kubernetes.

Мы используем долговременные / постоянные очереди, но каждый раз, когда наш облачный экземпляр отключается и резервируется, а модуль RabbitMQ перезапускается, наши существующие долговременные / постоянные очереди исчезают.

Сначала я подумал, что это проблема с томом, из-за которого очереди сохранялись, поскольку он не был постоянным, но это оказалось не так.

Похоже, что данные очереди хранятся в /var/lib/rabbitmq/mnesia/<user@hostname>. Так как имя хоста модуля меняется каждый раз, он создает новый набор данных для нового имени хоста и теряет доступ к ранее сохраненной очереди. У меня есть много наборов файлов, созданных в папке mnesia, все из предыдущих перезапусков.

Как я могу предотвратить это поведение?

Ближайший ответ, который я смог найти, находится в этом вопросе , но если я правильно его читаю, это будет работать, только если у вас есть несколько узлов в кластере одновременно, совместно использующих данные очереди. Я не уверен, что это будет работать с одним узлом. Или это будет?

1 Ответ

0 голосов
/ 22 июня 2019

Как я могу предотвратить это поведение?

Используя StatefulSet, как это предусмотрено для случая, когда у Бобов есть постоянные данные, связанные с их «идентичностью». Диаграмма Шлема - отличное место для начала чтения, даже если вы не используете его в итоге.

...