Retryμ Recover
λ€νΈμν¬λ₯Ό ν΅ν API νΈμΆμ μΈμ μ΄λ»κ² μ€ν¨ν μ§ μμΈ‘νκΈ° μ΄λ ΅κΈ° λλ¬Έμ μ΄λ₯Ό κ°μν μ μλ λͺ¨λν°λ§ κΈ°μ μ΄ λ§€μ° μ€μνκ² νκ°λ°κ³ μλ€.
λΆμ° μμ€ν μμ μλ²μ μλ²κ° API νΈμΆ μ€ν¨μ λν μ¬μλλ λ§€μ° μ€μν νμμ΄λ€. 1λ²μ λ€νΈμν¬ νΈμΆ μ€ν¨λ‘ μλΉμ€μ λΉμ¦λμ€ λ‘μ§μ λͺ¨λ μ€ν¨ μ²λ¦¬νκ±°λ fallback μ²λ¦¬νλ κ²μ λͺ λ² λ€μ νΈμΆνλ κ²λ³΄λ€ ν° λ¦¬μμ€ λλΉκ° λ μ μκΈ° λλ¬Έμ΄λ€.
π€ FallBack μ²λ¦¬???
μ΄λ€ κΈ°λ₯μ΄ μ½ν΄μ§κ±°λ μ λλ‘ λμνμ§ μμ λ, μ΄μ λμ²νλ κΈ°λ₯ λλ λμ
μ λ§νλ€. fallbackμ API νΈμΆ μ λ°μνλ μμΈ μ²λ¦¬λ₯Ό μν ν΄λμ€λ₯Ό μ μνλ€. μ€ν¨μ λν΄μ νμ²λ¦¬λ₯Ό μν΄ μ€μ ν΄λλ λ©μλμ΄λ€.
λν, DNS μλ², μ€μμΉ, λ‘λ λ°Έλ°μ€λ± μ λ§μ λ€νΈμν¬ κ΅¬μ± μμλ€μ μμ²μ΄ μ΄λ£¨μ΄μ§λ λͺ¨λ λ¨κ³μμ μ€λ₯λ₯Ό μΌμΌν¬ μ μλ€. λ€νΈμν¬ νκ²½μμλ ν΄λΌμ΄μΈνΈ μ ν리μΌμ΄μ μ μ¬μλ κΈ°μ μ΄ μ ν리μΌμ΄μ μ μμ μ±μ λμΌ λΏλ§ μλλΌ μ΄μ λΉμ©μ μ κ°νλ ν¨κ³Όλ μλ€.
λ°λΌμ, 보ν΅μ νΉμ API νΈμΆ μ€ν¨ μν©μμλ μ΅λ 3λ²μ νΈμΆ μ¬μλλ₯Ό νλ λ±μ λ°©λ²μ λ§μ΄ μ¬μ©νλ€.
λνμ μΈ μλ‘, λͺ
νν λΉμ¦λμ€ λ‘μ§μ μ€ν¨ μλ΅μ λ°λ μν©μ΄ μλ λ€νΈμν¬μ μΌμμ μ₯μ λ‘ Read Timeout μ€ν¨ μλ΅μ λ°λ κ²½μ°λ API throttling λ¬Έμ κ° μ¬μλλ₯Ό ν΄λ³Όλ§ν μν©μ΄λ€.
νμ§λ§ λ¬Έμ λ μ΄λ° νλ²ν μ¬μλ νμ μμ²΄κ° λλΆλΆμ μλ―Έ μκ±°λ λ€νΈμν¬μ λΆλ΄μ λ κ°μ€νλ κ²°κ³Όλ‘ λλλ€λ μ μ μλ€.
λλΆλΆμ Read Timeout μν©μ νΉμ μκ°λμ λ€νΈμν¬ μ΄μκ° μ§μλλ κ²½μ°κ° λ§κΈ° λλ¬Έμ 3ν μ¬μλλ₯Ό νλλΌλ λͺ¨λ μ€ν¨λ‘ λλ κ°λ₯μ±μ΄ λλ€.
λν, μ¬μλ μ체λ₯Ό μκ° κ°κ²©μ λκ³ νμ§ μλ κ²½μ° λ¬Έμ κ° λ°μν λ€νΈμν¬μ λΆλ΄μ μ€ κ°λ₯μ±μ΄ ν¬λ€.λ°λΌμ Retry νμλ λλν΄μΌ νλ©°, Springμμ μ¬μλ κΈ°λ₯μ μ¬μ©νκΈ° μν΄μλ Resilience4j, Spring Retry λΌμ΄λΈλ¬λ¦¬λ₯Ό λ³΄ν΅ λ§μ΄ μ¬μ©νλ€.
π₯ μλ¬λ₯Ό λ€μ μ²λ¦¬ν΄μΌν κ²½μ° Spring Retryλ₯Ό μ μ©νκ² μ¬μ©ν μ μλ€.
μ¬μ²λ¦¬λ₯Ό ν λ λ³΄ν΅ μλλ₯Ό κ³ λ €νκ² λλ€.
- μ¬μλλ₯Ό λͺ λ² μ€νν κ²μΈκ°?
- μ¬μλ νκΈ° μ μ μ§μ°μκ°μ μΌλ§λ μ€ κ²μΈκ°?
- μ¬μλλ₯Ό λͺ¨λ μ€ν¨νμ κ²½μ° μ΄λ»κ² μ²λ¦¬ν κ²μΈκ°?
λΉμ¦λμ€ λ‘μ§μ μ§μ€μ΄ κ°λ₯νλλ‘ μ€νλ§μμ μ 곡νλ λΌμ΄λΈλ¬λ¦¬λ₯Ό μ¬μ©νμ λ μ½λκ° κ°κ²°νκ³ μ μ§λ³΄μνκΈ° μ½λ€λ μ₯μ μ΄ μμ΅λλ€.
Reference
https://wonyong-jang.github.io/spring/2021/02/18/Spring-Retry.html
https://velog.io/@sweet_sumin/Fallback
'μ€νλ§' μΉ΄ν κ³ λ¦¬μ λ€λ₯Έ κΈ
SimpleJdbcInsert μ¬μ© μ, μλ μ»¬λΌ λ¬Έμ λ°μ (0) | 2024.04.11 |
---|---|
QueryDSL μ΄λ? (0) | 2023.05.18 |
μΉ μλ², μΉ μ ν리μΌμ΄μ μλ² (0) | 2022.10.20 |
κΈ°μ΄ μ§μ - 2 REST API (0) | 2022.09.01 |
κΈ°μ΄ μ§μ - 1 (0) | 2022.09.01 |