AMQP(RabbitMQ)にアクセスするためにPythonライブラリを使用することをお勧めしますか?私の調査から、pika
が推奨されるようです。
PikaはRabbitMQが推奨するライブラリであり、 py-ampqlib も言及されています。 Rabbitの使用目的によっては、 Celery (分散キューイング専用のクライアントライブラリ)も確認することをお勧めします。
繰り返しになりますが、使用法によっては、RabbitMQの完全なAMPQベースのクライアントサーバー代替手段であるApacheの qpid も確認することをお勧めします。 qpidに私たちを惹きつけたのは、サーバーのクラッシュに対する堅牢性が優れているように思われたことです(キューは分散方式で永続化されます)。
私自身の調査により、使用する適切なライブラリは 昆布 であると私は信じました。これは、Celery(@SteveMcが言及)が移行したものでもあるためです。私もRabbitMQを使用しており、デフォルトのamqplibバックエンドでKombuを正常に使用しています。
昆布は、同じAPIの背後で 他のトランスポート もサポートしています。 AMQPを置き換えるか、redisなどを追加する必要がある場合に役立ちます。しかし、それを試していません。
補足:Kombuは現在、最新のpikaリリースをサポートしていません(何らかの理由でそれに依存する必要があります)。現在サポートされているのは5.2.0だけですが、これは少し前の話です。
私は現在、PythonアプリでSSLを使用するようにしています。このアプリケーションを最初に開発したわけではありません(また、私はPython開発者)でもないので、それについてはよくわかりませんが、 TwistedのAMQPクライアント を使用しているようです。
QPid にも1つあります。繰り返しますが、品質はわかりません。
これらすべてのライブラリを調べた結果、正しい答えはそれらのどれでもないと確信しています。代わりに、ライブラリを変更しなければならない状況に遭遇することになるため、選択したライブラリの上にシムとして抽象化レイヤーを構築します。
ただし、同じバージョンのAMQPプロトコルに固執する場合、これらのライブラリは相互運用することを忘れないでください。さまざまなライブラリがテストされているため、pika、kombu、py-amqplibを実行するプロトタイプアプリケーションの一部がありました。
amqplibをpikaに置き換える についてのこのブログを読んで、これがなぜ良い考えであるかを理解してください。