アグリゲータの前後でAMQP(RabbitMQ)キューの永続性を利用して、MessageStoreにバックアップされていないアグリゲータを使用する場合、Spring Integrationセットアップで永続性を持てるかどうかを知りたいと思います。 これはackの使用を想像しています。アグリゲータは、すべての部分を収集して結果のメッセージを送信する前にメッセージを確認しません。 さらにこれが良いアイデアであるかどうかを知りたいと思います。AMQPを使用してMessageStoreを使用しないSpring統合アグリゲータのメッセージ永続性?
私は新しいキューの作業をしていて、使用するパターンが良いと感じています。
- 私は1つのキューにメッセージが表示されます。これは、次のような
私のビジネスロジックがあります。
- 各メッセージは無関係な2つのWebサービス呼び出し(好ましくは並行して)をもたらす必要があります。
- これら2つの呼び出しの結果は、元のメッセージの詳細と組み合わされている必要があります。
- この組み合わせは、キュー上の新しいメッセージとして送信する必要があります。
メッセージは重要なので、紛失してはいけません。
私は、永続的なシステムであるRabbitMQを1つだけ使用し、データベースを追加する必要はありませんでした。
私は具体的な質問を維持しようとしたが、これにアプローチする方法上の任意の他の提案は大歓迎です:)
受信チャネルのプリフェッチは、グループ内の予想されるメッセージ以上でなければなりません。ブローカは、unackされたメッセージをプリフェッチする以外には送信しません。 –
@GaryRussell私はあなたのコメントを正しく理解していますが、複数の元のメッセージ(複数の並列処理を処理しようとしています)のアウトバウンド要求があれば、プリフェッチはそれに応じて拡張する必要がありますか? – cranphin
まさにそうです。コンテナの 'concurrency * prefetch'は、ブローカが許可する未処理のメッセージの数を決定します - それは少し脆い - あなたが間違っている場合、アプリケーションはハングします。私はデザインに熱心ではない。 –