3

RabbitMQ で、複数のコンシューマーが同じキューから同じメッセージを取得する方法はありますか?

聞いている人に同じメッセージを送信するだけでなく、誰かがそれを処理するようにする必要があります。基本的に、エクスチェンジのファンアウト機能と、キューの basic.ack 機能を組み合わせる必要あります。スケーラブルな方法でこれを達成する方法はありますか?

4

1 に答える 1

1

メッセージが適切に処理されていることを確認しようとしている場合は、確認応答によって既にこの機能が提供されています。コンシューマがメッセージを処理できず、ACK を提供しない場合、メッセージは再度キューに入れられ、次に利用可能なコンシューマによって再度処理されます。複数の競合するコンシューマーを同じキューに実装すると、ラウンドロビン配信が可能になり、他のコンシューマーが成功するチャンスが得られます。

これがどれだけスケーラブルかは、受信速度、キューの耐久性、プリフェッチ、およびキューにある競合するコンシューマーの数と比較して、各メッセージの処理にかかる時間によって異なります。

于 2013-10-18T20:12:18.993 に答える