用于访问RabbitMQ(AMQP)的最佳PHP客户端库?

在RabbitMQ网站上有一个PHP客户端列表 。 我正在问这个问题,希望那些使用过这些的人能够在这里分享他们的经验。 例如

  • 你有没有麻烦安装?
  • 它是稳定的吗?
  • 有没有任何性能问题?
  • 文档/支持如何?

即使您刚使用过这些库,请分享您的经验。

作为参考,这里列出的一些客户:

  • AMQP的PHP手册页
  • php-amqp – 由StudiVZ开发和使用的客户端,最初基于RabbitMQ-C
  • php-amqplib是py-amqplib的一个端口
  • php-amqplib更新了php-amqplib的分支,以支持PHP 5.3
  • AMQP客户端的PECL版本

PS我知道“最佳…”是“主观的”,但这个问题的重点是收集经验,帮助人们对这些AMQP图书馆做出明智的决定。 请不要因为它里面有“最好”这个词而下意识地closures这个问题。

PPS我在RHEL 5上使用PHP 5.3。

作为参考, PECL AMQP扩展和http://php.net/manual/fa/book.amqp.php是一回事,一个是包,另一个是包的文档。;

作为官方PHP AMQP扩展的维护者,我有点偏见。 许多人在大批量低延迟的生产环境中使用这种扩展,因为它比原生PHP编写的要快得多。 而且,由于我经常在工作中使用这个工具,所以我必须保持工作并保持最新状态。

这个扩展的缺点是,它不适用于Windows,但是,它所依赖的库目前正在移植。 Windows支持没有ETA,但只要依赖关系支持Windows,我们的目标就是将扩展移植到Windows。

这个库似乎是活着的,并从code.google:

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

还有testing和特拉维斯CI。

考虑到php-amqp和PECL版本,我的印象是实现了对发布和消费消息的基本支持。 但是,他们只能在* NIX平台上开箱即用。 你将不得不跳过这些环节,使他们在Windows上工作(根据你的开发或部署平台,这可能也可能不成问题)。

奖励: https : //github.com/tnc/php-amqplib在MEAP书籍“RabbitMQ in Action”中使用。 这是否会对其采用产生影响还有待观察。

还有https://github.com/bkw/php-amqp/ ,我认为它是http://code.google.com/p/php-amqplib/的镜像。; 我在代码方面遇到了一些麻烦:在正常运行时注意消息以及出现错误时的各种错误和警告。 该代码也认为PHP手册的字是理所当然的; 例如,套接字读取调用只针对错误返回进行检查,而实际上,我只是发现套接字closures/超时可能由4个不同的条件中的任何一个指示。

我开始认为,编译的库解决scheme(即PHP扩展)是最好的select,特别是因为存在线程和套接字问题,并且PHP处理不好。

我们正在开发amqp interop 。 它试图识别和标准化PHP程序通过AMQP创build,发送,接收和读取MQ消息以实现互操作性的常见方式。

如果您下注,您可以从任何兼容Interop的交通工具开始。 你将来仍然可以改变它,你没有被locking。

我们目前支持enqueue / amqp-ext和enqueue / amqp-lib 。 首先在php amqp扩展之上工作,另一个采用phpamqplib。