2016-12-19 7 views
1

メッセージングサービスにRabbitMqを使用する予定です。すべてのメッセージ要求をRabbitMqの耐久性キューに公開します。RabbitMqで失敗した公開を処理するには?

.Netクライアントでは、EasyNetQを使用することに決めました。メッセージを公開しているときにRabbitMqサーバーがダウンしている場合、どうすれば対処する必要がありますか?

- 例外を検出してメッセージをデータベースに保存し、スケジュールされたジョブで再公開する必要がありますか?

- サーキットブレーカを使用する必要がありますか?

- またはほかに何か?私はあなたの経験を聞きたい。

答えて

3

一般に公開について確認したい場合はpublish confirmationを使用できます。

あなたが読むことができるように、あなたはトランザクションまたはConfirmListenerでそれを行うことができます。

ブローカの処理に失敗すると、失敗したメッセージをローカルに保存してから、x秒後に再送信を試みることができます。

注:私はEasyNetQがどのように動作するか分かりませんが、ネイティブが公開非同期なので、トラップ公開例外は十分ではありません。だからこそあなたはそれに対処するためにパブリッシュ確認を使うべきです。

関連する問題