38

RabbitMQ 站点上有一个PHP 客户端列表。我问这个问题是希望用过这些的人可以在这里分享他们的经验。例如

  • 你安装有什么问题吗?
  • 稳定吗?
  • 有没有性能问题?
  • 文档/支持如何?

即使您刚刚使用过其中一个库,也请分享您的经验。

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

PS 我知道“Best ...”是“主观的”,但这个问题的重点是收集经验并帮助人们对这些 AMQP 库做出明智的决定。请不要仅仅因为它包含“最佳”这个词而下意识地关闭这个问题。

PPS 我在 RHEL 5 上使用 PHP 5.3。

4

6 回答 6

31

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

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

这个扩展的缺点是它还不能用于 Windows,因为它所依赖的库当前正在被移植。没有针对 Windows 的 ETA 支持,但是一旦依赖项支持 Windows,我们的目标就是将扩展也移植到 Windows。

于 2010-12-11T02:10:37.880 回答
6

这个库似乎还活着,并且继承了 code.google 的原始库:

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

还有测试和 Travis CI。

于 2011-12-01T08:45:52.100 回答
3

初步审查的一些信息:

https://github.com/tnc/php-amqplib在过去的一个未知时间点 分叉 了http://code.google.com/p/php-amqplib/ 并且没有明确的历史记录或显示更改的内容,这导致了工作的不幸分裂。它似乎也没有跟上应用于原始版本的错误修正,其中一些修正是在过去几个月中出现的。

此外, http://code.google.com/p/php-amqplib/本身现在似乎不再处于积极开发中,并且一个多月前应用了一个糟糕的补丁,使主干处于损坏状态。(我提交了一个补丁来解决这个问题,但这是一个不好的迹象)。

于 2010-12-10T07:29:41.053 回答
2

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

我开始认为编译的库解决方案(即 PHP 扩展)是最好的选择,特别是因为存在线程和套接字问题,而 PHP 处理这两者都很糟糕。

于 2010-12-10T14:36:58.920 回答
2

看过 php-amqp 和 PECL 版本后,我的印象是实现了对发布和消费消息的基本支持。但是,它们只能在 *NIX 平台上开箱即用。您将不得不跳过箍以使它们在 Windows 上工作(这可能是也可能不是问题,具体取决于您的开发或部署平台)。

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

于 2010-12-10T15:53:01.877 回答
0

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

如果您下注,您可以从任何兼容互操作的传输开始。您将来仍然可以更改它,您没有被锁定。

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

于 2017-08-02T07:50:35.217 回答