- Главная
- →
- Архитектуры, масштабируемость
Кластер RabbitMQ. Создание отказоустойчивого решения Архитектуры, масштабируемость
Закончил аспирантуру по специальности «Физическая химия», где активно использовал Python для расчетов и моделирования многокомпонентных систем неводных растворов электролитов. Разрабатывал различные системы на Python и Golang. Сейчас руководит разработкой и внедрением системы искусственного интеллекта в компании «Программный регион», которая специализируется на решениях направленных на эффективную доставку персонализированного контента пользователям. В свободное время развивает собственные опенсорс-проекты, пишет на Python и Golang и экспериментирует с новыми технологиями.
Тезисы
Многие компании используют RabbitMQ в качестве связующего программного обеспечения для конвейерной архитектуры или микросервисов. С ростом нагрузки вcтает вопрос о масштабировании и отказоустойчивости системы обмена сообщениями. Решение из коробки, которое предоставляет RabbitMQ, в большинстве случаев решает проблемы масштабирования, но не отказоустойчивости. И согласно CAP-теореме мы должны выбирать: целостность данных или их доступность.
В докладе рассмотрены проблемы, с которыми мы столкнулись при построении отказоустойчивого кластера, и как их пробовали решать, сложности реализации, достоинства и недостатки следующих подходов:
* Использование в кластере нескольких нод.
* Кластер RabbitMQ на одном сервере на разных дисках.
* Расположение нод в кластере в разных дата-центрах.
* Использование Shovel и Federation.
* Использование своего решения Cluster + Shovel + DNS.