Очереди сообщений
Очередь сообщений позволяет обеспечить асинхронное выполнение участков программы. Это позволяет:
- Увеличить скорость работы приложения
- Обслуживать большее количество посетителей (масштабироваться)
- Использовать разные языки разработки в одном приложении
Система очередей — это принцип, а не конкретная технология. Для реализации системы очередей не обязательно использовать внешнее решение. Вы можете реализовать очередь, скажем, на MySQL и PHP. Однако простота и наличие готовых решений позволят сделать это быстрее.
Cron
Использование cron скриптов (например, для преобразования видео файлов) — это самый примитивный метод реализации очередей. Современные системы позволяют сделать все намного проще и удобнее.
Система очередей состоит из двух основных компонент.
Сервер очереди
Сервер очереди хранит список сообщений (или задач, job queue), которые отправляет ему основное приложение. Задача — это просто информация о том, что и как нужно выполнить.
Сам сервер очереди ничего не выполняет. Единственной его задачей является хранение самой очереди.
Обработчик
Обработчик (или worker) — это часть основной программы, которая работает с очередью в обратном направлении. Он получает новые сообщения из очереди и выполняет соответствующие действия.
Т.е. медленный участок программы удаляется из основной программы и переносится в worker. В основном приложении он заменяет на отправку сообщения в очередь.
Интеграция
Общая структура работы системы сообщений в приложений выглядит так:
Для работы Вам понадобится:
- Установить систему очереди (например, Gearman).
- Заменить медленный участок программы на отправку сообщения.
- Разработать обработчик (worker), т.е. перенести медленный участок туда.
- Запустить воркер в один или несколько потоков.
- Установить систему мониторинга для отслеживания загруженности очереди и статуса воркеров.
Масштабирование
С точки зрения масштабирования система очередей предоставляет большие возможности.
- Возможность реализовывать воркеры на разных технологиях позволит применять самые эффективные решения.
- Использование нескольких серверов сообщений позволит сделать программу надежной и масштабируемой.
- Возможность запуска нескольких воркеров позволит ускорить медленные операции.
- Многие системы сообщений поддерживают приоритизацию, что позволит быстрее выполнять важные задачи.
Практика и самое важное
Читайте о применении системы очередей Gearman в PHP. Системы очередей можно и нужно применять не только на крупных Web сайтах. Медленные операции значительно ухудшают опыт использования приложения, а очереди позволят обеспечить высокую скорость работы для посетителей.
Сообщить об опечатке
Текст, который будет отправлен нашим редакторам: