繁体   English   中英

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

[英]Best PHP client library for accessing RabbitMQ (AMQP)?

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

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

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

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

PS我知道“最好......”是“主观的”,但问题的关键在于收集经验并帮助人们对这些AMQP图书馆做出明智的决定。 请不要只是因为它里面有“最好”这个词而不得不关闭这个问题。

PPS我在RHEL 5上使用PHP 5.3。

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

作为官方PHP AMQP扩展的维护者,我有点偏颇。 许多人在高容量低延迟生产环境中使用此扩展,因为它比用本机PHP编写的扩展速度快得多。 此外,由于我在工作中经常使用它,我必须保持它的工作和最新。

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

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

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

还有测试和Travis CI。

初步审查的一些信息:

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

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

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

我开始认为编译库解决方案(即PHP扩展)是最好的选择,特别是因为存在线程和套接字问题,并且PHP处理得很差。

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

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

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

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

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM