web-dev-qa-db-ja.com

最高PHP RabbitMQ(AMQP)にアクセスするためのクライアントライブラリ?

RabbitMQサイトのPHPクライアントのリスト のリストがあります。これらのいずれかを使用したことがある人がここで体験を共有できることを期待して、この質問をしています。例えば.

  • インストールに問題がありましたか?
  • 安定していますか?
  • パフォーマンスの問題はありましたか?
  • ドキュメント/サポートはどうですか?

これらのライブラリのいずれかを使用したばかりの場合でも、あなたの経験を共有してください。

参考までに、以下にクライアントの一部を示します。

追伸「ベスト...」は「主観的」であることは知っていますが、この質問のポイントは、経験を収集し、人々がこれらのAMQPライブラリについて十分な情報に基づいた決定を行えるようにすることです。 「最高」という言葉が含まれているからといって、この質問をひざまずかないでください。

P.P.S. PHP 5.3をRHEL 5で使用しています。

36
dkamins

参考までに、 PECL AMQP Extensionhttp://php.net/manual/fa/book.amqp.php は同じもので、1つはパッケージ、もう1つはパッケージですパッケージのドキュメント。

公式のPHP AMQP拡張機能のメンテナとして、私は少し偏っています。この拡張機能は、ネイティブPHPで書かれた拡張機能よりもはるかに高速であるため、大量の低遅延の本番環境で使用します。さらに、私は仕事でこれを常に使用しているので、私はそれを機能させ、最新に保つ必要があります。

この拡張機能の欠点は、それが依存するライブラリが現在移植されているため、Windowsではまだ使用できないことです。 ETA for Windowsのサポートはありませんが、依存関係がWindowsをサポートすると同時に、拡張機能をWindowsにも移植することが私たちの目標です。

30
Pieter

このライブラリは存続しており、code.googleのオリジナルを継承しているようです。

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

テストとTravis CIもあります。

6
Tomas Dermisek

最初のレビューからの情報:

https://github.com/tnc/php-amqplib forked http://code.google.com/p/php-amqplib/ の不明なポイント過去、明確な履歴がない、または何が変更されたかを示していないため、不幸なことに作業が断片化されています。また、オリジナルに適用されているバグ修正に追いついていないようです。

また、 http://code.google.com/p/php-amqplib/ 自体は現在活発に開発されていないようであり、1か月以上前に不適切なパッチが適用され、トランクが壊れた状態。 (私はそれを修正するパッチを提出しましたが、これは悪い兆候です)。

3
dkamins

Php-amqpとPECLバージョンの両方を見て、私の印象は、メッセージのパブリッシュとコンシュームの基本的なサポートが実装されていることです。ただし、これらは* NIXプラットフォームでそのまま使用できます。 Windowsで機能させるには、フープをジャンプする必要があります(開発または展開プラットフォームによっては、問題になる場合とそうでない場合があります)。

ボーナス: https://github.com/tnc/php-amqplib は、MEAPブック「RabbitMQ in Action」で使用されています。それがその採用に影響を与えるかどうかはまだわからない。

2
dimdm

https://github.com/bkw/php-amqp/ もあります http://code.google.com/p/php-amqplib/のミラーだと思います 。そのコードで問題が発生しました。通常の操作中にメッセージを通知し、何か問題がある場合はあらゆる種類のエラーと警告を表示します。このコードはPHPマニュアルのWordも当然のこととしています。たとえば、ソケットの読み取り呼び出しはエラーの戻りに対してのみチェックされますが、実際には、ソケットのクローズ/タイムアウトが4つの異なる条件のいずれかによって示される可能性があることを発見しました。

特にスレッドとソケットの問題があるため、コンパイルされたライブラリソリューション(つまり、PHP拡張機能)が最良のオプションであり、PHPはどちらも適切に処理できないと考え始めています。

2
aib

amqp interop に取り組んでいます。相互運用性を実現するために、AMQPを介してMQメッセージを作成、送信、受信、および読み取るPHPプログラムの一般的な方法を識別および標準化しようとします。

あなたがそれに賭けをするなら、あなたはどんな相互運用互換性のあるトランスポートからでも始めることができます。今後も変更することができます。ロックされていません。

現在 enqueue/amqp-ext および enqueue/amqp-lib をサポートしています。最初のものはphp amqp拡張機能の上で動作し、別のものはphpamqplibを採用します。

0
Maksim Kotlyar