RabbitMQ は、DB トランザクションのコミット時に受信メッセージ確認が送信されるシナリオをサポートしていますか?
現在、DB トランザクションのコミット後に ack を送信しています。サービスが途中で失敗した場合、データの重複が発生します - サービスは同じメッセージを再び受け取ります。
この問題のパターンはありますか?
ありがとう!
RabbitMQ は、DB トランザクションのコミット時に受信メッセージ確認が送信されるシナリオをサポートしていますか?
現在、DB トランザクションのコミット後に ack を送信しています。サービスが途中で失敗した場合、データの重複が発生します - サービスは同じメッセージを再び受け取ります。
この問題のパターンはありますか?
ありがとう!
はい、そうですが、RabbitMQ はメッセージ ストレージに独自の DB を使用することに注意してください (現時点では)。RabbitMQ からパブリッシャーに ack を送信するには、TX モードを使用します。これは、仕様および Web サイトのさまざまな部分に記載されています。
独自の DB を使用する場合は、それをメッセージのエンド コンシューマーとして設定することをお勧めします。この場合、独自のアプリケーション レベルの ack を使用する必要があります。
詳細や質問については、rabbitmq-discuss までお気軽にメールしてください。
HTH
アレクシス