- Стандартные и FIFO-очередиВ Yandex Message Queue очереди бывают двух типов: стандартные и FIFO (first in — first out). Стандартные очереди не сохраняют порядок отправки сообщений, обеспечивают семантику доставки «at least once» и обладают высокой пропускной способностью. FIFO-очереди сохраняют порядок отправки сообщений, позволяют реализовать семантику доставки «exactly once», но их пропускная способность ограничена 100 сообщениями в секунду.
- Надёжное хранениеСообщения сохраняются сразу в нескольких копиях в географически распределённых зонах доступности. Это обеспечивает надёжность хранения при низкой задержке подтверждения записи.
- Быстрая обработкаДля хранения сообщений Yandex Message Queue использует быстрые твердотельные накопители с поддержкой технологии NVMe. Это даёт высокую производительность и маленькое время отклика даже при одновременной отправке множества сообщений.
- Совместимость с HTTP API Amazon SQSДля работы с Yandex Message Queue можно использовать те же инструменты, что и для взаимодействия с Amazon SQS: HTTP API, интерфейс командной строки, библиотеки для различных языков программирования. Yandex Message Queue также можно воспользоваться в популярных фреймворках и библиотеках, поддерживающих Amazon SQS: Laravel, Celery, JMS и многих других.
Какие задачи можно решать с Yandex Message Queue
Yandex Message Queue удобно использовать как средство коммуникации между приложениями — не нужно разрабатывать свой протокол и обрабатывать ошибки получателя. Использование очереди позволяет отправлять сообщения даже тогда, когда получатель временно недоступен.
Систему, в которой приложения независимы и общаются друг с другом при помощи очереди сообщений, проще масштабировать. Количество приложений, отправляющих или обрабатывающих сообщения, можно поменять, не затрагивая остальные части системы.
Использование очереди сообщений повышает отказоустойчивость при сбоях отдельных приложений. Если приложение аварийно завершит работу при обработке сообщения, сообщение вернётся в очередь и его сможет прочитать другой обработчик. При этом такие сбои никак не влияют на работу отправителей.
С помощью очереди сообщений можно вынести выполнение длительных задач в отдельные приложения, быстрее освободив ресурсы для новых запросов пользователей.