Circuit Breaker Pattern - low-hill/Knowledge GitHub Wiki
λΆμ° νκ²½μμλ μ΄ν리μΌμ΄μ μ΄ μ격 리μμ€λ μλΉμ€λ₯Ό νΈμΆνλ κ²½μ°κ° λ§κ³ μ΄λ¬ν νΈμΆμμ μ€λ₯κ° μΌμμ μ΄κ±°λ μ₯μκ° λ°μν μ μλ€. μ¬μλ ν¨ν΄μ μΌλ°μ μΌλ‘ μΌμμ μΈ μ€λ₯μ μ¬μ©λλ©°, μ΄ν리μΌμ΄μ μ΄ μμ μ΄ μ±κ³΅ν λκΉμ§ μ¬μλν μ μλλ‘ νλ€. κ·Έλ¬λ μ§μμ μΈ μ¬μλλ‘ λ¬Έμ ν΄κ²°μ΄ λμ§ μμ μν©λ μμΌλ―λ‘ λ³΄λ€ μ λ΅μ μΈ μ κ·Όμ΄ νμνλ€. μλ₯Ό λ€μ΄ μ μμκ±°λμ κ²°μ μλΉμ€κ° μμ ν μ€λ¨λ κ²½μ° κ²°μ μ²λ¦¬λ₯Ό κ³μ μ¬μλ νλ κ²λ³΄λ€ μ₯μ λ₯Ό μ μνκ² μΈμ§νκ³ μ μ ν μ‘°μΉλ₯Ό μ·¨νλκ²μ΄ λ°λμ§νκ³ μ΄λ° λ¬Έμ λ₯Ό Circuit Breakerλ‘ ν΄κ²° ν μ μλ€. μ΄ ν¨ν΄μ μ€λ₯λ₯Ό ν΄κ²°νλ λ° μκ°μ΄ μ€λ 걸릴 μ μλ μλ리μ€μμ μ μ©νλ©°, μμ£Ό μ€λ₯κ° λ°μνλ μμ μ 리μμ€ λλΉλ₯Ό λ°©μ§νλ€.
Circuit Breaker Pattern
Circuit Breakerλ μ격 μ μ μ€ν¨ νμκ° νΉμ μκ³κ°μ λλ¬νλ©΄ μ μλ μκ° λμ λμ΄μ λμνμ§ μλλ‘ νλ€. ν΄λΉ μκ° λμ μ€νλΌμΈ μλ²μ λν λͺ¨λ μμ²μ μ€ν¨νκ³ , ν΄λΉ μκ°μ΄ μ§λλ©΄ μ νλ μμ μμ²μ΄ ν΅κ³Όνλλ‘ νμ©νκ³ , ν΄λΉ μμ²μ΄ μ±κ³΅νλ©΄ μλ μνλ‘ λ³΅κ΅¬νλ€.
Circuit Breakerμ 3κ°μ§ μνκ° μ‘΄μ¬νλ€.
μ μ μν : Close
μ€λ₯ μν : Open
λ°μ΄λ¦Ό μν : Half Open
- μ€ν¨ νμ μΉ΄μ΄νΈ(Close μν): CloseμνμΌ λλ μ μ μλμΌλ‘ μμ²μ ν΅κ³Ό μν¨λ€. μ΄λ λ§μ΄ν¬λ‘μλΉμ€ μμ²μ λν μ€ν¨κ° μΉ΄μ΄νΈ λλ€.
- μ€ν¨ νμ > μκ³κ°(Open μν): μ€ν¨ νμκ° μκ³κ°μ μ΄κ³Όνλ©΄ νλ‘κ° Open μνκ° λμ΄ μμ²μ΄ μλΉμ€μ λλ¬νμ§ λͺ»νλλ‘ μ°¨λ¨λλ©°, μ€ν¨ μλ΅μ λ°ννλ€. μ΄ν μλ²κ° μ μμ μΌλ‘ 볡ꡬλλ©΄ Half open μνλ‘ λ³κ²½λλ€.
- μ νλ μμ² ν μ€νΈ λ° μ±κ³΅ νμΈ (Half open μν): μ΄ μνμμλ μ νλ μμ μμ²μ ν΅κ³Όμν€κ³ μλ΅μ μ±κ³΅νλ©΄ Close μνλ‘ λμκ°λ€. μ΄λ μμ²μ΄ μ€ν¨νλ©΄ λ€μ Open μνλ‘ λμκ°λ€.
Reference