Установка и настройка сервера очередей Beanstalkd в Debian Jessie

Mar 9, 2017 11:17 · 396 words · 2 minute read beanstalkd

Beanstalkd это упрощенный сервер очередей, который изначально разрабатывался под нужны Causes на Facebook. Он предназначен для управления потоками задач различных компонентов стека развертывания приложения при помощи очередей рабочих процессов и сообщений, но серьезно отличается от RabbitMQ или Gearman.

Главное отличие Beanstalkd от ближайших аналогов в том, что он изначально разрабатывался как сервис очередей, а не универсальный инструмент для выполнения других функций. Давайте разберемся с установкой и настройкой сервера очередей Beanstalkd в Debian Jessie!

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

Среди интересных особенностей beanstalkd можно назвать следующие:

  • приоритизация;
  • распределенность (несколько серверов beanstalkd могут работать по принципу Memcached);
  • отложенное выполнение задач в очереди (в том числе возможность «бесконечно» откладывать задачу);
  • множество внешних библиотек (PHP, Python и т. д.), веб-консоли;
  • таймаут для автоматического размещения задачи в очереди (TTR).

Компоненты beanstalkd следующие:

  • tube — очередь, в которую помещаются задания (сообщения) для передачи рабочим процессам;
  • job — задание (сообщение), которое передается рабочему процессу;
  • producer — приложение, создавшее задание (сообщение) и отправившее его в очередь на выполнение;
  • consumer — приложение, которое получает из очереди задания (сообщения) для обработки.

Основные команды beanstalkd такие:

  • put — добавить задание в очередь;
  • reserve — получить задание из очереди;
  • delete — удалить задание после его выполнения;
  • bury — отложить задание после выполнения;
  • kick — вытащить задание из bury и поместить в очередь;
  • release — поставить заданию статус ‘готово’ после выполнения.

Установка сервера очередей Beanstalkd в Debian Jessie не должна вызывать вопросов:

sudo aptitude install beanstalkd

В конфигурационном файле /etc/default/beanstalkd необходимо раскомментировать строку:

...
START=yes
...

Демона beanstalkd можно запускать со следующими опциями:

  • -b DIR директория для валидации;
  • -f MS fsync каждое значение миллисекунд (-f0 для «always fsync»);
  • -F без fsync (по умолчанию);
  • -l ADDR слушать адрес (0.0.0.0 по умолчанию);
  • -p PORT слушать порт (11300 по умолчанию);
  • -u USER стать пользователем и группой;
  • -z BYTES максимальный размер задания в байтах (65535 по умолчанию);
  • -s BYTES размер каждого файла валидации (10485760 по умолчанию), (будут округлены до значения, кратного 512 байт);
  • -c уменьшить binlog (по умолчанию);
  • -n не уменьшать binlog;
  • -v показать версию;
  • -V улучшенный вывод;
  • -h показать справку. Можно управлять beanstalkd как сервисом, используя:
service beanstalkd start | stop | restart | status

На этом установка beanstalkd в Debian Jessie завершена, в следующей статье рассмотрим пример использования сервера очередей beanstalkd на PHP.

tweet Share