작성
·
50
0
안녕하세요. 대용량 트래픽 2번째 강의를 듣고 질문 남깁니다.
우선 저는 마이크로서비스를 구축해 본 경험이 없습니다. 서킷브레이커 사용해 본 경험이 없습니다.
이 상태에서 서킷 브레이커 개념을 접하니, 아래와 같은 질문이 생겼습니다.
1."서킷브레이커로 에러를 반환하는 방식"과, 단순히 "코드 상에서 에러를 반환하는 방식"이 다른가요?
둘 다 ux를 위해서 에러를 리턴하는 방식은 유사해 보입니다.
아래는 위에 언급한 '코드 상'에 대한 예시 코드입니다.
try {
} catch(e) {
//여기서 에러를 리턴
}
대용량 트래픽을 위해서는 (서킷브레이커든, 코드 단이든) "일단 에러를 반환하는 것"이 좋은 선택지인 지 궁금합니다. 에러가 터질 경우, retry가 필요한 곳이라고 판단이 되면, 에러를 곧바로 반환하지 않고, 다시 쿼리나 함수를 실행하는 로직을 넣어왔습니다.
답변 1
1
안녕하세요 ㅎㅎ
반환방식이 다른가요?
-> 유사합니다.
일단 에러반환이냐 retry냐?
->
보통은 retry 하다가 -> 임계지점에 도달하면-> 에러반환 하고 -> 서킷이 open 상태가 됩니다.
서킷 브레이커는 보통 2가지의 사례로 쓰입니다. 참고부탁드립니다.
연속적인 실패: 특정 서비스나 리소스에 대한 호출이 반복적으로 실패하는 경우.
시스템 보호: 실패한 호출이 계속 쌓이면서 시스템 전체의 성능이나 가용성에 영향을 미치는 것을 방지하기 위함.
서킷없이 계속해서 retry를 하는것은 어떨까요?
-> 트래픽이 적거나 시스템이 충분히 안정적일 때 유효한 방법입니다. 하지만 재시도가 반복되면 문제가 있는 리소스에 더 큰 부하를 줄 수 있기 때문에, 이 때는 서킷 브레이커와 함께 사용하는 것이 좋습니다.
또 질문 있으시면 언제든지 질문 부탁드립니다.
좋은 수강평과 별점 5점은 제게 큰 힘이 됩니다. :)
감사합니다.
강사 큰돌 올림.
답변 감사합니다