私はSpring-Cloud + feign + spring-retryの組み合わせを使用して、クライアント側でリクエストを再試行できるようにしています(すべてKotlinベースのバックエンドです)
私の春のブート設定は次のようなものです:
myApp:
ribbon:
OkToRetryOnAllOperations: true
retryableStatusCodes: 404, 503
(注:OkToRetryOnAllOperations = trueは、POST / PUTリクエストも再試行するためにのみ存在します)
404および503HTTPコードを再試行するのは良いことのように聞こえますが、再試行するエラーコードの「クラシック」または「デフォルト」リストがあるかどうかわかりません。この種のグッドプラクティスは存在しますか?
すべてのリクエストはサーバー側でべき等であると想定しています(そうでない場合、再試行すると問題が発生する可能性があります)。
非常に大まかな経験則として:
4XX-クライアントが何か悪いことをした
5XX-サーバーが何か悪いことをした
しかし、それは実際のAPIに大きく依存します。
500を再試行する必要がありますか?おそらく、DBへの接続中にサーバーで予期しない問題が発生したためです。または、予期しないものを送信していて、4XXを返す代わりにクラッシュする可能性があります。
このリソースが表示されることを期待しない限り、通常、404を再試行する理由はあまりありません。
再試行に有効なHTTPコードは、408、502、503、および504のみです。
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加