12 сентября в промежутке с 18:35 до 19:18 (мск) у 100% клиентов не работали исходящие коммуникации
Корневая причина недоступности — отказ брокера очередей, обрабатывающего исходящие email и транзакционные коммуникации
Для 100% клиентов не работали исходящие коммуникации:
Статусы доставки писем не обрабатывались и по итогу были обработаны с задержкой
18:36 - система мониторинга обнаружила, что брокер сообщений RabbitMQ стал недоступен
18:41 - дежурный инженер начал диагностику проблемы
18:47 - дежурная команда выявила возможную причину проблемы: утечку памяти в процессе, обслуживающем виртуальные машины на гипервизоре Hyper-V. Это привело к сбою в работе виртуальной машины с RabbitMQ. Поскольку такая ситуация произошла впервые, инженеры эскалировали ее до архитектора
18:57 - дежурная команда попыталась восстановить работоспособность виртуальной машины с RabbitMQ отключив одну из низкоприоритетных виртуальных машин, чтобы освободить ресурсы
19:09 - освобождение ресурсов не решило проблему и команда приняла решение перезагрузить гипервизор
19:13 - после перезагрузки гипервизора работоспособность брокера сообщений RabbitMQ была полностью восстановлена.
Мы используем Apache Kafka в качестве основной системы для передачи сообщений между сервисами. Некоторые части этой системы используют устаревшую технологию RabbitMQ, которая ранее была основным инструментом. На момент внедрения RabbitMQ не предоставлял надежных механизмов отказоустойчивости, поэтому мы обеспечили её через репликацию виртуальных машин на уровне гипервизора Hyper-V.
Со временем объем данных, подлежащих репликации, превысил возможности механизма. Это привело к утечке памяти в процессе, отвечающем за репликацию и, в конечном итоге, к сбою всей системы гипервизора.