Spring Retry
·
개발
분산환경에서 짧은 네트워크 중단 또는 일시적인 서비스 불가한 상황에 발생할 때가 있다. 일부 장애는 지속적으로 발생하여 사람의 개입이나 시스템 변경이 필요할 수 있지만 대부분 일시적이어서 재시도를 통해 해결될 때가 있다. 이때 사용하는 것이 Spring Retry이다. Spring Retry는 추상화된 retry operation을 제공한다. 때문에 개발자들이 retry logic을 어플리케이션에 간편하게 추가할 수 있다. 특히나, 일시적인 오류가 문제가 되는 외부 시스템을 다룰 때 굉장히 유용하다.  사용 방법코드에 적절한 종속성을 추가하고 실패 시 재시도해야 하는 메서드에 어노테이션을 달면된다.@Serviceclass MyService { // Retryable: 최대 3번 재시도, 2초 대기 ..
견고한 MSA
·
개발
MSA의 비싼 아키텍처가 유행하게 되면서 서비스의 회복성(resilence)의 중요성은 점점 대두되고있다.Spring Cloud에서는 개발자들이 회복성있는 마이크로 서비스를 구현할 수 있는 몇몇 기능을 제공한다. 몇몇 기능 중 대표적으로 Retry와 Fallback을 소개할 예정이다. 이 둘은 견고한 시스템에서 우아하게 실패들을 처리할 수 있는 중요한 구성 요소이다. 들어가기에 앞서.... 서론 - 마이크로 서비스의 필요성?분산 시스템에서는 마이크로 서비스들이 agility, scalability, maintainability를 중요 요소로 여겨진다. 이러한 장점들 덕에 마이크로서비스가 인기를 얻었다고해도 과언이 아니다. 하지만 이 요소들은 시스템을 위태롭게하는 요소중에 하나이기도 하다. 때문에 마이크로..