Upgrade to Pro — share decks privately, control downloads, hide ads and more …

httputil.ReverseProxy でもリトライがしたい

httputil.ReverseProxy でもリトライがしたい

8ad12d1da761245e3cf713bc3c2904b2?s=128

TOGASHI Tomoki

May 19, 2022
Tweet

Other Decks in Programming

Transcript

  1. httputil.ReverseProxy でも リトライがしたい 2022/05/19 | golang.tokyo #32 TOGASHI Tomoki

  2. ABOUT ME 富樫 知基 (TOGASHI Tomoki) バックエンドエンジニア @ ARIGATOBANK Go,

    Kubernetes, Google Cloud 🐈, 🐈‍⬛, ⌨️ @clomie
  3. go-retryabletransport https://github.com/toga4/go-retryabletransport

  4. リトライする http.RoundTripper

  5. ライブラリ作成の動機

  6. 動機 たまに起きる接続エラー ↓ リトライしたい httputil.ReverseProxy

  7. 動機 http.RoundTripper で実装が必要 実装のプラクティスを集約したい リトライトリガーの定義 バックオフ問題 net/http/httputil.ReverseProxy でリトライしたい

  8. 使いかた

  9. 使いかた

  10. 使いかた Backoff 設定

  11. 使いかた 親の Transport

  12. 使いかた リトライトリガー(エラー)

  13. 使いかた リトライトリガー(レスポンス)

  14. 使いかた

  15. Backoff

  16. Backoff インターフェースのみ、実装を提供しない 代わりに既存の Backoff モジュールのアダプタを提供 github.com/googleapis/gax-go/v2 github.com/lestrrat-go/backoff/v2

  17. github.com/lestrrat-go/backoff/v2 指数バックオフ

  18. github.com/lestrrat-go/backoff/v2 定数バックオフ

  19. go-retryabletransport https://github.com/toga4/go-retryabletransport フィードバックお待ちしています