Рубріки: HighloadТеория

Очереди сообщений

Игорь Грегорченко

Очередь сообщений позволяет обеспечить асинхронное выполнение участков программы. Это позволяет:

  • Увеличить скорость работы приложения
  • Обслуживать большее количество посетителей (масштабироваться)
  • Использовать разные языки разработки в одном приложении

Система очередей — это принцип, а не конкретная технология. Для реализации системы очередей не обязательно использовать внешнее решение. Вы можете реализовать очередь, скажем, на MySQL и PHP. Однако простота и наличие готовых решений позволят сделать это быстрее.

Cron

Использование cron скриптов (например, для преобразования видео файлов) — это самый примитивный метод реализации очередей. Современные системы позволяют сделать все намного проще и удобнее.

Система очередей состоит из двух основных компонент.

Сервер очереди

Сервер очереди хранит список сообщений (или задач, job queue), которые отправляет ему основное приложение. Задача — это просто информация о том, что и как нужно выполнить.

Сам сервер очереди ничего не выполняет. Единственной его задачей является хранение самой очереди.

Обработчик

Обработчик (или worker) — это часть основной программы, которая работает с очередью в обратном направлении. Он получает новые сообщения из очереди и выполняет соответствующие действия.

Т.е. медленный участок программы удаляется из основной программы и переносится в worker. В основном приложении он заменяет на отправку сообщения в очередь.

Интеграция

Общая структура работы системы сообщений в приложений выглядит так:

Для работы Вам понадобится:

  1. Установить систему очереди (например, Gearman).
  2. Заменить медленный участок программы на отправку сообщения.
  3. Разработать обработчик (worker), т.е. перенести медленный участок туда.
  4. Запустить воркер в один или несколько потоков.
  5. Установить систему мониторинга для отслеживания загруженности очереди и статуса воркеров.

Масштабирование

С точки зрения масштабирования система очередей предоставляет большие возможности.

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

Практика и самое важное

Читайте о применении системы очередей Gearman в PHP. Системы очередей можно и нужно применять не только на крупных Web сайтах. Медленные операции значительно ухудшают опыт использования приложения, а очереди позволят обеспечить высокую скорость работы для посетителей.

Останні статті

Обучение Power BI – какие онлайн курсы аналитики выбрать

Сегодня мы поговорим о том, как выбрать лучшие курсы Power BI в Украине, особенно для…

13.01.2024

Work.ua назвал самые конкурентные вакансии в IТ за 2023 год

В 2023 году во всех крупнейших регионах конкуренция за вакансию выросла на 5–12%. Не исключением…

08.12.2023

Украинская IT-рекрутерка создала бесплатный трекер поиска работы

Unicorn Hunter/Talent Manager Лина Калиш создала бесплатный трекер поиска работы в Notion, систематизирующий все этапы…

07.12.2023

Mate academy отправит работников в 10-дневный оплачиваемый отпуск

Edtech-стартап Mate academy принял решение отправить своих работников в десятидневный отпуск – с 25 декабря…

07.12.2023

Переписки, фото, история браузера: киевский программист зарабатывал на шпионаже

Служба безопасности Украины задержала в Киеве 46-летнего программиста, который за деньги устанавливал шпионские программы и…

07.12.2023

Как вырасти до сеньйора? Девелопер создал популярную подборку на Github

IT-специалист Джордан Катлер создал и выложил на Github подборку разнообразных ресурсов, которые помогут достичь уровня…

07.12.2023