仕事では、電子メールの送信、PDFの構築、データの処理などのジョブサーバーを構築する必要があります。明らかに、何らかの汎用キューシステムを構築したいと思います。私はGearmanに精通しており、これが解決しようとしている正確な問題であるということです。つまり、ジョブをキューに入れて、ワーカーがそれらをピックアップするようにすることです。ただし、Rabbitmqについて多くの言及があり、このシナリオでRabbitmqがどのように使用されているかは不明です。
Rabbitmqは、分散ジョブシステムを構築するための優れたフレームワークですか?
Gearmanは「ジョブ」のキューイングに優れ、RabbitMQは「データ」のキューイングに優れていると思います。もちろん、どちらも本当に同じものですが、私にとってうまくいく方法は、仕事を「ファンアウト」しようとしていて、労働者が独立して働くことができる場合、Gearmanがそれを行うより良い方法です。しかし、多くのソースからより少ないデータコンシューマーにデータをフィードしようとしている場合は、RabbitMQが優れたソリューションです。
RabbitMQの歴史は、Twitterが大量のメッセージを受信し、それらを無愛想な古いSMS 1つの接続のみを開いたままにして、レート制限され、再試行のないゲートウェイに送り込むことを可能にしたものとして) 、RabbitMQが解決に優れている問題の種類を示しています。
それはすべて、どのセマンティクスを公開したいかによって異なります。 GearmanがRabbitMQの上で行うことは非常に簡単です。これにより、独立した労働者にメッセージを「ファンアウト」できます。
しかし、Gearmanは目的のために構築されています。 IIUC、Gearmanはジョブを処理するためのフレームワークであり、メッセージングシステム自体ではありません。そのためにRabbitMQを内部で使用するCeleryなどの他のフレームワークがあります。 セロリに関する記事 を読む価値があります。