기본 콘텐츠로 건너뛰기

2월, 2016의 게시물 표시

Hystrix, Hystrix dashboard, Turbine 의 구성

서론 Hystrix 는 Netflix 에서 제공하는 Circuit breaker 모듈이다. Circuit breaker는 차단기를 의미하는데, 전자회로에서 이상 전류의 발생을 중간에서 차단하는 장치이다. 비슷한 의미로 소프트웨어 애플리케이션에서도 사용되는데, 이상 현상이 있는 서비스에 대한 요청을 일시적으로 차단하여 이상 동작을 최소화하도록 처리하는 것을 말한다. 소프트웨어 애플리케이션의 Circuit breaker에 대한 내용은  http://martinfowler.com/bliki/CircuitBreaker.html 에서 확인이 가능하다. 마이크로서비스 아키텍처에서는 Circuit breaker의 역할이 중요하다. 아키텍처 구조상 다양한 통신채널(Rest API 또는 Message bus 등)로 서로 통신을 하게 되는데, 이 과정에서 네트워크 문제 등으로 서로 간의 통신할 수 없는 경우가 많이 있다. 이럴 경우 연쇄적인 오류를 방지한다거나, 문제가 있는 서비스에 계속해서 요청하고 대기하는 등의 작업을 최소화할 필요가 있다. Spring cloud에서는 Ribbon Loadbalancer와 함께 Hystrix를 이용한 Circuit breaker 를 사용하여 이러한 문제를 최대한 단순하게 처리할 수 있도록 제공하고 있다. 이번 포스트는 이 내용을 정리해보고자 한다. 이번 포스트에서 참고한 내용은 아래와 같다. Calistaenterprise 블로그 :  http://callistaenterprise.se/blogg/teknik/2015/04/15/building-microservices-with-spring-cloud-and-netflix-oss-part-2/ Josh Long의 Devoxx 2015 :  https://www.youtube.com/watch?v=SFDYdslOvu8&list=WL&index=3 이번 포스트를 준비하면서 테스트한 환경은 아래와 같다. Configuration Server 와 Di