본문 바로가기

netflix hystrix-dashboard 가 뜨지 않을 때 Spring Cloud 기반으로 MSA를 구현하기 위해 요 며칠 고군분투 중이다. 전체적인 정리는 나중에 해야겠지만, 방금 한 번 삽질을 한 김에 정리를 짧게 남겨보려 한다. 일단 배경을 살펴 보자면 hystrix 라고 하는 Netflix OSS에 포함되어 있으며, Spring Cloud 에도 포함된 지연 내성 및 장애 내성을 갖게 해 주는 라이브러리이다. 이에 대해서는 나중에 자세히 다룰지도 모른다. hystrix 에 관한 부분은 아니고, hystrix 의 상태를 모니터링 및 시각화 해 주는 hystrix-dashboard 에 관해 다룰 것인데 일단 아래와 같이 # pom.xml 안에 포함된 의존성 # 상략... org.springframework.boot spring-boot-starter-actua.. 더보기
High Availability 를 위한 VRRP와 keepalived (2) - keepalived https://springboot.cloud/23 의 글에서 고가용성(HA)의 개념과 이를 달성하기 위한 프로토콜인 VRRP 에 대해서 살펴보았다. 운영 중인 장비에서 문제가 생겼을 때, 자동으로 예비 장비로 전환하여 서비스의 지속성을 유지 시켜주는 기능을 장애극복(failover)라고 한다. 이번 글에서는 리눅스에서 failover 를 위해서 사용하는 keepalived 에 대해서 살펴볼 것이다. keepalived란? 공식 홈페이지의 설명에 따르면 keepalived는 C로 작성된 로드밸런싱 및 고가용성을 제공하는 프레임워크이다. 로드밸런싱을 하기 위해서는 LVS(Linux Virtual Server)의 구성 요소인 IPVS를 사용한다. keepalived와 조합하여 HAPROXY 와 같은 로드밸런서.. 더보기
High Availability 를 위한 VRRP와 keepalived (1) - VRRP 웹서비스를 운영하면 부하 분산을 위해서 nginx 로 reverse proxy를 사용하거나 HAPROXY 같은 로드밸런서를 널리 사용한다. 물론 이러한 부하 분산은 서비스의 안정적인 운영을 위해서 좋은 방법이다. 그런데, nginx 나 HAPROXY가 설치된 서버가 죽거나 해당 서비스가 다운된다면? 그 뒤에서 웹 서버들은 멀쩡히 돌아가고 있는데, 안정적인 운영을 위해 올려놓은 녀석 하나 때문에 모든 서비스가 불능에 빠져버리는 결과를 초래한다. 로드밸런서 뿐 아니라 라우터와 같이 통신을 위해 꼭 통과해야하는 지점도 불능이 되면, 해당 지점의 전후가 살아 있더라도 전체적인 불능 상태를 초래할 수 있다. 위의 그림과 같이 한 지점이 동작하지 않으면 전체를 불능에 빠트릴 수 있는 요소가 될 수 있는 지점을 sp.. 더보기