Что лучший способ состоит в том, чтобы отформатировать сообщения для организации очередей?

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

Я ищу шаблоны и лучшие практики о том, как правильно отформатировать сообщения для очереди и способы выполнить задания в PHP. Я должен использовать JSON, сериализованные объекты, текст, URL или XML? Какую информацию я должен отправить? Рабочий с a switch($job['command']) {} (или что-то как этот), способ пойти, или там какие-либо установленные шаблоны там для реализации рабочего?

Справка значительно ценится!

8
задан AtliB 4 February 2011 в 12:22
поделиться

2 ответа

Вы можете выбрать любую из следующих реализаций MQ в PHP, так что вам не нужно откатывать свою собственную, и вы можете посмотреть их исходный код, чтобы узнать об их реализации. Для общей интеграции просмотрите страницу ActiveMQ в шаблонах интеграции предприятия .

  • http://sourceforge.net/projects/beanstalk/

    Клиентская библиотека PHP для beanstalkd. BeanStalk позволяет разработчикам PHP использовать сервер очереди работ beanstalkd в памяти ( http://xph.us/software/beanstalkd ).

  • http://kr.github.com/beanstalkd/

    Beanstalk - это простой и быстрый сервис создания очереди. Его интерфейс является универсальным, но изначально был разработан для уменьшения задержки просмотра страниц в веб-приложениях большого объема за счет асинхронного выполнения трудоемких задач.

  • http://activemq.apache.org/

    Apache ActiveMQ - самый популярный и мощный поставщик шаблонов обмена сообщениями и интеграции с открытым исходным кодом. Apache ActiveMQ работает быстро, поддерживает множество межъязыковых клиентов и протоколов, поставляется с простыми в использовании шаблонами интеграции предприятия и множеством дополнительных функций, при этом полностью поддерживает JMS 1.1 и J2EE 1.4. Apache ActiveMQ выпущен под лицензией Apache 2.0

  • http://memcachedb.org/memcacheq/

    Memcachedb - это распределенная система хранения значений ключей, предназначенная для постоянного хранения. Это не решение для кеширования, а постоянное хранилище для высокочастотной записи и чтения. Он соответствует протоколу memcache (не завершен, см. Ниже), поэтому любой клиент memcached может иметь с ним связь.Memcachedb использует Berkeley DB в качестве хранилища, поэтому поддерживается множество функций, включая транзакции и репликацию.

  • http://www.zend.com/en/products/server/

    Zend Server 5.0 включает очередь заданий, обеспечивая полную поддержку для создания, выполнения и управления заданиями для оптимизации производительности приложений и снижения нагрузки на сервер, сводя к минимуму приложения узкие места и улучшение взаимодействия с конечным пользователем.

  • https://www.dropr.org/

    dropr - это структура распределенной очереди сообщений, написанная на PHP. Основными целями являются:

    • надежный и надежный (отказоустойчивый) обмен сообщениями по сети
    • децентрализованная архитектура без единого (точка отказа) экземпляра сервера
    • простота настройки и использования
    • модульность для хранения очередей и сообщений транспорты (в настоящее время реализованы хранение файловой системы и загрузка curl)
  • http://gearman.org/

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

  • http://www.zeromq.org/

    ØMQ (также обозначаемый как ZeroMQ, 0MQ или ZMQ) - это высокопроизводительная библиотека асинхронного обмена сообщениями, предназначенная для использования в масштабируемых распределенных или параллельных приложениях. Он предоставляет очередь сообщений, но в отличие от промежуточного программного обеспечения, ориентированного на сообщения, система ØMQ может работать без специального брокера сообщений. Библиотека разработана с использованием знакомого API в стиле сокетов.

9
ответ дан 5 December 2019 в 17:36
поделиться

Я бы использовал JSON, если вы можете - он краткий, легко читаемый и работает на разных языках.

Одна из причин, по которой вы не сможете использовать JSON, заключается в том, что вы хотите, чтобы ваша фоновая «работа» включала не только данные (в этом случае подойдет JSON), но и сериализованный объект. В этом случае вам нужно сделать хотя бы один из аргументов задания сериализованным PHP.

1
ответ дан 5 December 2019 в 17:36
поделиться
Другие вопросы по тегам:

Похожие вопросы: