Resilience4j

Spring

공유 자원을 관리하는 bulk head에 대해서 알아보자

벌크헤드에 대해서 간단하게 알아보겠습니다 Bulk Head는 한 가지 작업에서 동시에 사용될 수 있는 자원을 제한하는 방식입니다. 서버 개발에서는 보통 한 API에서 최대 N개까지만 동시에 호출될 수 있다는 제약 조건을 걸게 됩니다. 톰캣 스레드(외부에서 요청을 받는 스레드)가 200개가 존재하고 있을 때, 한 API에서 총 199개까지만 호출될 수 있다고 하면, 1개는 무조건 다른 쪽에 배정될 테니 다른 기능이 최소한 어느 정도는 동작하는 것을 보장할 수 있습니다. 이 제한이 왜 필요한지 아직 전혀 감이 오지 않으시죠? 보통 다른 API 를 호출할 때, 몇 번 이상 호출하면 안 된다는 제약을 거는 것은 봤어도 우리 서비스에 동시에 몇 개 이상 호출이 되면 처리를 못하게 막는다는 것은 이상할 테니까요 이..

프로그래밍 방법

MSA에서 필수로 알아야 하는 Circuit Breaker 패턴

Circuit Breaker 목적은 무엇일까요? Circuit Breaker 패턴은 장애가 발생했을 때 장애가 전파되는 것을 막기 위한 패턴입니다. 원래라면, 서비스 A가 서비스 B를 호출하고, 서비스 B가 장애가 발생하면 서비스 A도 장애가 발생합니다. Circuit Breaker 패턴을 적용하면, 서비스 A가 서비스 B를 호출할 때 더 이상 호출하지 않도록 차단합니다. 차단하는 것을 통해서 서비스 A는 정상적으로 작동할 수 있도록 하는 목적을 가지고 있습니다. Circuit Breaker 패턴의 구성요소 Circuit Breaker 패턴은 크게 3가지로 구성되어 있습니다. Open Half Open Closed Open Open 상태는 Circuit Breaker가 차단되어 있는 상태입니다. Open..

be-student
'Resilience4j' 태그의 글 목록