メッセージキューに接続されている複数の消費者と生産者は、AMQPで可能ですか?

StackOverflow https://stackoverflow.com/questions/2161206

質問

OCRテキストができるプロセスの農場を作成したいと思います。複数のOCRプロセスによって読まれるメッセージの単一のキューを使用することを考えました。

私はそれを確実にしたいと思います:

  • キュー内の各メッセージは最終的に処理されます
  • 作業は多かれ少なかれ均等に分配されています
  • 画像は1つのOCRプロセスによってのみ解析されます
  • OCRプロセスでは、複数のメッセージを一度に取得しません(そのため、他の無料のOCRプロセスがメッセージを処理できるように)。

AMQPを使用することは可能ですか?

PythonとRabbitmqを使用する予定です

役に立ちましたか?

解決

はい、それは可能です。リアルタイムMMOゲームのサーバークラスター私はこのように動作しています。 ActiveMQを使用していますが、RabbitMQでもこれがすべて可能だと思います。

あなたが言及したすべてのアイテムは、最後のものを除く箱から出ます。

  • キュー内の各メッセージは最終的に処理されます - これはメッセージブローカーの主な責任の1つです
  • 作業は多かれ少なかれ均等に分配されています - これは別のものです:)
  • 画像は1つのOCRプロセスによってのみ解析されます - これには /トピックと /キューの区別が存在します。トピックはブロードキャスト信号のようなもので、キューはタスクです。シナリオでは /キューが必要です

最後の1つの作業を希望の方法で行うために、消費者はキューを購読する際にAMQ固有の引数を送信します。

activemq.prefetchSize: 1

この設定では、消費者がそれ以上のメッセージを受け取った後、そしてそれが送信するまでそれ以上のメッセージを受け取らないことを保証します ack amqへ。 rabbitmqには似たようなものが存在すると思います。

他のヒント

はい、@nailxxが指摘しているように。 AMQPプログラミングモデルはJMSとわずかに異なります。 キュー, 、労働者間で共有するか、使用することができます 個人的に 一人の労働者によって。 rabbitmqを簡単に設定することもできます pubsub ユースケースまたはJMSの内容が呼ばれています トピック. 。私たちに行ってください 入門 のページ Rabbitmq Webサイト これに関する有益な情報をたくさん見つけるために。

現在、特にあなたのユースケースのために、すでにたくさんのツールが利用可能です。人々が多くを使用しており、それが十分にサポートされているものは、 セロリ. 。がここにあります ブログ投稿 それについて、私はあなたが始めるのに役立つと思います:

ご質問がある場合は、メールを送信するか、Rabbitmq-Discussメーリングリストに投稿してください。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top