Очереди сообщений обеспечивают асинхронный обмен информацией. Это означает, что адреса, которые отправляют и получают сообщения, взаимодействуют с очередью, а не друг с другом. Отправители могут добавлять запросы в очередь, не дожидаясь их обработки. Получатели обрабатывают сообщения только тогда, когда они доступны. Ни один компонент в системе никогда не останавливается в ожидании другого, что оптимизирует поток данных.
Очереди обеспечивают сохранение состояния данных и уменьшают количество ошибок, возникающих при отключении различных частей системы. Благодаря разделению различных компонентов с помощью очередей сообщений можно повысить отказоустойчивость. Если одна часть системы окажется недоступной, другая часть все равно может продолжать взаимодействовать с очередью. Саму очередь также можно зеркалировать для еще большей доступности.
Очереди сообщений помогают устранить зависимости между компонентами и значительно упрощают написание кода разделенных приложений. Компоненты программного обеспечения, не отягощенные кодом взаимодействия, могут специализироваться на выполнении конкретных бизнес-задач.
Очереди сообщений – это изящный и простой способ разделения распределенных систем, независимо от того, используются в них монолитные приложения, микросервисы или бессерверные архитектуры.
Разделение приложений
Используйте очереди сообщений, чтобы разделить монолитные приложения. Вместо выполнения нескольких функций в одном исполняемом файле несколько программ могут обмениваться информацией, отправляя сообщения между процессами, что упрощает тестирование, отладку, видоизменение и масштабирование.
Переход на микросервисы
Шаблоны интеграции микросервисов, основанные на событиях и асинхронных сообщениях, оптимизируют масштабируемость и повышают отказоустойчивость. Используйте сервисы очередей сообщений для координации множества микросервисов, оповещения микросервисов об изменении данных или в качестве конвейера событий для обработки данных IoT, социальных сетей или информации, поступающей в режиме реального времени.
Переход на бессерверные технологии
После создания микросервисов без серверов, развертывания на серверах или установки любого программного обеспечения можно использовать очереди сообщений для предоставления надежных и масштабируемых бессерверных уведомлений, обмена данными между процессами и визуализации бессерверных функций и PaaS.
Очереди сообщений позволяют масштабирование именно там, где это необходимо. При пиковой нагрузке несколько инстансов приложения могут добавлять запросы в очередь без риска коллизий. По мере роста длины очередей, связанных с этими входящими запросами, можно распределить рабочую нагрузку между парком получателей. Отправители, получатели и сама очередь могут расти и сокращаться по требованию.