Черга повідомлень дозволяє забезпечити асинхронне виконання ділянок програми. Це дозволяє:
- Збільшити швидкість роботи програми
- Обслуговувати більшу кількість відвідувачів (масштабироваться)
- Використовувати різні мови розробки в одному додатку
Система черг - це принцип, а не конкретна технологія. Для реалізації системи черг не обов'язково використовувати зовнішнє рішення. Ви можете реалізувати чергу, скажімо, на MySQL і PHP. Однак простота і наявність готових рішень дозволять зробити це швидше.
Система черг складається з двох основних компонентів.
сервер черги
Сервер черги зберігає список повідомлень (або задач, job queue), які відправляє йому основне додаток. Завдання - це просто інформація про те, що і як потрібно виконати.
Сам сервер черги нічого не виконує. Єдиною його завданням є збереження самої черги.
оброблювач
Оброблювач (або worker) - це частина основної програми, яка працює з чергою в зворотному напрямку. Він отримує нові повідомлення з черги і виконує відповідні дії.
Тобто повільний ділянку програми видаляється з основної програми і переноситься в worker. В основному додатку він замінює на відправку повідомлення в чергу.
інтеграція
Загальна структура роботи системи повідомлень в додатків виглядає так:
Для роботи Вам знадобиться:- Встановити систему черзі (наприклад, Gearman).
- Замінити повільний ділянку програми на відправку повідомлення.
- Розробити обробник (worker), тобто перенести повільний ділянку туди.
- Запустити Воркер в один або кілька потоків.
- Встановити систему моніторингу для відстеження завантаженості черзі і статусу Воркер.
масштабування
З точки зору масштабування система черг надає великі можливості.- Можливість реалізовувати Воркер на різних технологіях дозволить застосовувати найефективніші рішення.
- Використання декількох серверів повідомлень дозволить зробити програму надійної і масштабованої.
- Можливість запуску декількох Воркер дозволить прискорити повільні операції.
- Багато системи повідомлень підтримують пріоритизації, що дозволить швидше виконувати важливі завдання.
Практика і найважливіше
Читайте про застосування системи черг Gearman в PHP. Системи черг можна і потрібно застосовувати не тільки на великих Web сайтах. Повільні операції значно погіршують досвід використання програми, а черги дозволять забезпечити високу швидкість роботи для відвідувачів.