[Хд] logo

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

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

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

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

Cron

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

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

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

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

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

Обработчик

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

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

Интеграция

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

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

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

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

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

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

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

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

  read in english
[Хд]

Подписывайтесь на отборные материалы по продвинутой разработке

Google Email

Esc, чтобы подписаться позже