Ono Yuichi
2016-07-24LINE 엔지니어입니다.
LINE의 엔지니어 Ono입니다. 이번 블로그에서는 LINE의 서버에서 실제로 도입을 시작한 'Circuit Breaker'라는 시스템에 대해 소개하겠습니다.
Circuit Breaker란?
LINE을 비롯한 최근의 Web 및 App의 백엔드 서버 시스템은 여러 개의 서비스가 API나 RPC로 연결된 네트워크로 구성되어 있습니다. 만약 이 네트워크 중 하나가 갑자기 전혀 응답하지 않게 되는 상황이 발생하면 어떻게 될까요? 동작하지 않는 서비스 접속 시 타임아웃될 때까지 차단되어, 의존성이 있는 서비스까지 연쇄적으로 멈출 가능성이 있습니다. 만약 네트워크 전체를 파악하고 있는 사람이 아무도 없다면, 근본적인 원인이 어느 서비스에 있는지를 알아내기까지 시간이 걸리게 됩니다.
우리는 이러한 연쇄적인 장애 발생을 막아야 합니다. 적어도 가장 중요한 기능에 영향이 가지 않도록 해야 하는데, 그러기 위해서는 장애가 발생한 서비스에 대한 접속 차단이 필요합니다.
이 시스템을 자동화한 것이 바