Лучшая клиентская библиотека PHP для доступа к rabbitmq (AMQP)?
Вопрос
Eсть Список клиентов PHP на сайте rabbitmq. Отказ Я задаю этот вопрос в надежде, что люди, которые использовали ни одного из них, могут поделиться своим опытом здесь. Например
- У вас были проблемы с установкой?
- Это стабильно?
- Были ли проблемы с производительностью?
- Как документация / поддержка?
Даже если вы только что использовали одну из этих библиотек, пожалуйста, поделитесь своим опытом.
Для справки, вот некоторые из клиентов перечислены:
- PHP Ручная страница для AMQP
- PHP-AMQP - клиент, разработанный и использованный Studivz, первоначально на основе rabbitmq-c
- php-amqplib порт py-amqplib
- PHP-Amqplib Вилка PHP-AMQPLIB обновляется для поддержки PHP 5.3
- Отказ PECL клиента AMQP
PS Я знаю, что «лучшее ...» является «субъективным», но смысл этого вопроса состоит в том, чтобы собрать опыт и помочь людям принять обоснованное решение об этих библиотеках AMQP. Пожалуйста, не колено, не закройте этот вопрос только потому, что в нем есть слово «лучшее».
PPS Я использую PHP 5.3 на RHEL 5.
Решение
Для справки, Расширение PECL AMQP а также http://php.net/manual/fa/book.amqp.php. То же самое, один из них - это пакет, другая документация для пакета.
Как сопровождающий официального расширения PHP AMQP, я немного предвзятый. Многие люди используют это расширение в средах производства низкой латентности с высоким объемом, поскольку она гораздо быстрее, чем один, написанный на родном PHP. Кроме того, поскольку я постоянно использую это на своей работе, я должен держать его работать и в курсе.
Недостаток к этому расширению состоит в том, что он не доступен для Windows, пока, поскольку библиотека, на которой она зависит, в настоящее время переходит. Нет ETA для поддержки Windows, но, как только в качестве зависимостей поддерживает Windows, это наша цель, чтобы портировать расширение в Windows.
Другие советы
Эта библиотека, кажется, жива и преуспевает оригинал от кода. Google:
https://github.com/videlalvaro/php-amqplib.
Есть также тесты и Трэвис СИ.
Некоторая информация от первоначального обзора:
https://github.com/tnc/php-amqplib.разветвленныйhttp://code.google.com/p/php-amqplib/На неизвестной точке в прошлом и не имеет четкой истории или показать то, что было изменено, что приводит к несчастной фрагментации усилий. По-видимому, не следует идти в ногу с исчезновениями, применяемыми к исходному, ряд, которые пришли за последние несколько месяцев.
Также http://code.google.com/p/php-amqplib/ Сама теперь, похоже, больше не является активным развитием, а плохая патч была нанесена более месяца назад, оставляя багажник в сломанном состоянии. (Я отправил патч, чтобы исправить это, но это плохой знак).
Посмотрев как PHP-AMQP и версию PECL, мои впечатления состоят в том, что реализована базовая поддержка публикации и потребления сообщений. Однако они будут работать только из коробки на * NIX платформы. Вам придется прыгать через обручи, чтобы заставить их работать на Windows (что может быть или не может быть проблемой в зависимости от вашей платформы разработки или развертывания).
Бонус: https://github.com/tnc/php-amqplib. используется в книге постройки «Rabbitmq в действии». Будь то какое-либо влияние на его усыновление, еще предстоит увидеть.
Есть также https://github.com/bkw/php-amqp/ который я думаю, это зеркало http://code.google.com/p/php-amqplib/. Отказ У меня были проблемы с этим кодом: обратите внимание на сообщения во время нормальной работы и всевозможных ошибок и предупреждений, когда есть что-то не так. Код также принимает слово руководства PHP как должное; Например, вызовы прочитанных сокетов проверяются только против возврата ошибок, в то время как на самом деле я просто обнаружил, что в центре времени / время ожидания может быть указывается любым из 4 различных условий.
Я начинаю думать, что скомпилированное решение библиотеки (т. Е. Расширение PHP) - лучший вариант, в частности, после того, как проблемы с резьбой и сокетами, а PHP обрабатывает как плохо.
Мы работаем над amqp Interop.. Отказ Он пытается определить и стандартизировать распространенный способ для создания программ PHP, отправлять, получать и прочитать сообщения MQ через AMQP для достижения взаимодействия.
Если вы разместите ставку на нее, вы можете начать с любого взаимодействия совместимого транспорта. Вы все равно сможете изменить его в будущем, вы не заблокированы.
В настоящее время мы поддерживаем enqueue / amqp-ext а также enqueue / amqp-lib. Отказ Первый работает на вершине расширения PHP AMQP, где другой принимает phpamqplib.