0

10 のパーティションと 10 のスループット ユニットを持つイベント ハブ経由で 100 万の小さなメッセージを送信しようとしています。

その目的のために、私は javax.jms.MessageProducer を使用しています。

私の質問は、Azure Event Hubs UI でエラーが表示されるのに、ServerBusy (またはその他の) 例外をキャッチできないのはなぜですか? Java ライブラリが、メッセージの再送信を含め、例外を外部にまったく公開せずに既に処理している可能性がありますか?

また、一般的に言えば、Java プロデューサでの ServerBusy エラー処理のベスト プラクティスは何でしょうか? (プロデューサが常に TU ごとに 1000 を超えないメッセージを送信するように、レート リミッタを実装するか、ServerBusy 例外をキャッチする際に再送信ポリシーを実装するか...)

4

2 に答える 2

0

どちらのオプションにも長所と短所があります。1) レート制限を使用すると、指定された時間までに 1000 件のメッセージしか処理されないため、定義された時間ごとにより多くのリクエストがある場合、リクエストが山積みになりますが、メッセージを送信するためのブルート フォース攻撃を受けることはできないと約束されます。

2) 再送信ポリシーには、送信メソッドが失敗した場合に再送信を試みるという利点があります。再送信ポリシーを使用する場合は、再送信の試行回数について言及していることを確認してください。そうしないと、サーバーがダウンしている場合に同じ再送信が続けられ、停止することはありません。

于 2015-12-21T16:41:16.333 に答える