Лучшая клиентская библиотека PHP для доступа к RabbitMQ (AMQP)? - PullRequest
36 голосов
/ 10 декабря 2010

На сайте RabbitMQ есть список клиентов PHP .Я задаю этот вопрос в надежде, что люди, которые использовали любой из них, могут поделиться своим опытом здесь.Например,

  • У вас возникли проблемы с установкой?
  • Насколько она стабильна?
  • Были ли проблемы с производительностью?
  • Как работает документация /support?

Даже если вы только что использовали одну из этих библиотек, поделитесь своим опытом.

Для справки, вот некоторые из перечисленных клиентов:

PS Я знаю, что "Best ..." является "субъективным", но суть этого вопроса - собрать опыт и помочь людям сделать информированноеРешение об этих библиотеках AMQP.Пожалуйста, не закрывайте этот вопрос просто потому, что в нем есть слово «лучший».

PPS Я использую PHP 5.3 на RHEL 5.

Ответы [ 6 ]

30 голосов
/ 11 декабря 2010

Для справки: Расширение PECL AMQP и http://php.net/manual/fa/book.amqp.php - это одно и то же, один пакет, другой документация для пакета.

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

Недостатком этого расширения является то, что оно пока недоступно для Windows, поскольку библиотека, на которой онозависит в настоящее время переносится.Поддержка ETA для Windows отсутствует, но как только зависимости поддерживают Windows, наша цель также перенести расширение на Windows.

6 голосов
/ 01 декабря 2011

Эта библиотека, кажется, жива и наследует оригинал от code.google:

https://github.com/videlalvaro/php-amqplib

Есть также тесты и Travis CI.

3 голосов
/ 10 декабря 2010

Некоторая информация из первоначального обзора:

https://github.com/tnc/php-amqplib разветвлена ​​http://code.google.com/p/php-amqplib/ в неизвестном месте в прошлом и не имеет четкой истории или показывает, что было изменено, какие результатыв неудачной фрагментации усилий.Похоже, что он НЕ идет в ногу с исправлениями ошибок, примененными к оригиналу, некоторые из которых появились в последние несколько месяцев.

Также http://code.google.com/p/php-amqplib/ само по себе теперь, похоже, больше не находится в активной разработке, и более месяца назад был применен плохой патч, оставив транк в нерабочем состоянии.(Я представил патч, чтобы это исправить, но это плохой знак).

2 голосов
/ 10 декабря 2010

Посмотрев как на php-amqp, так и на версию PECL, у меня сложилось впечатление, что реализована базовая поддержка публикации и использования сообщений.Однако они будут работать только из коробки на платформах * NIX.Вам придется перепрыгивать через обручи, чтобы заставить их работать в Windows (что может или не может быть проблемой в зависимости от вашей платформы разработки или развертывания).

Бонус: https://github.com/tnc/php-amqplib используется в MEAPкнига "RabbitMQ в действии".Будет ли это иметь какое-либо влияние на его принятие еще неизвестно.

2 голосов
/ 10 декабря 2010

Также есть https://github.com/bkw/php-amqp/, который, я думаю, является зеркалом http://code.google.com/p/php-amqplib/. У меня были некоторые проблемы с этим кодом: замечать сообщения во время нормальной работы и всевозможные ошибки и предупреждения, когда что-то не так , Код также принимает слово руководства PHP как должное; например, вызовы чтения сокетов проверяются только на предмет возврата ошибки, хотя на самом деле я просто обнаруживаю, что закрытие / тайм-аут сокета может указываться любым из 4 различных условий.

Я начинаю думать, что решение скомпилированной библиотеки (то есть расширение PHP) является наилучшим вариантом, особенно из-за проблем с потоками и сокетами, а PHP плохо справляется с обеими задачами.

0 голосов
/ 02 августа 2017

Мы работаем над amqp interop . Он пытается идентифицировать и стандартизировать общий способ для программ PHP создавать, отправлять, получать и читать сообщения MQ через AMQP для достижения совместимости.

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

В настоящее время мы поддерживаем enqueue / amqp-ext и enqueue / amqp-lib . Первый работает поверх расширения php amqp, где другой принимает phpamqplib.

...