본문 바로가기

language, framework, library/Spring Cloud17

[MSA] Spring Cloud Zuul 1.x - 실습편 안녕하세요. 오늘은 저번시간에 이어서 Spring Cloud Zuul 1.0의 실습을 해보도록 하겠습니다. 실습의 순서는 Spring Cloud Zuul 사용을 위한 의존성을 알아보고, Filter 등록 방법, Routing, 그리고 장애에 대비한 Retry 및 Fallback을 사용하는 방법까지 알아보도록 하겠습니다. pre-condition(사전 조건) zuul을 실습하기 전에 서비스를 한게 만들고 2개로 띄어두어야 실질적인 테스트를 할 수 있습니다. 아래와 같이 설정 Controller를 제작한 후 build, 2개의 서버를 띄우도록 합시다. @RestController public class TestController { @GetMapping("/ping") public ResponseEntity.. 2020. 1. 22.
[MSA] Spring Cloud Zuul 1.x - 개념편 안녕하세요. 오늘은 Spring Cloud에서의 API Gateway인 Zuul 1.0에 대해서 알아보도록 하겠습니다. 사실 현재 Zuul은 내부가 동기통신으로 이루어지기 때문에 부하 문제를 가지고 있어 Zuul 2.0 또는 Spring Cloud Gateway로 넘어가고 있는 추세입니다만, 요즘 나오는 API Gateway를 이해하기 위해서는 webflux를 이해하고 있어야 합니다. 때문에 이해를 위해서 1.0을 기준으로 설명을 진행하도록 하겠습니다. Zuul Zuul은 모든 장비 또는 웹사이트에서 백엔드 서비스를 호출할 때 거치는 문 같은 역할을 하는 어플리케이션입니다. Edge 서비스 어플리케이션이라고도 하며 MSA에서 동적 라우팅, 모니터링, 보안 등을 담당합니다. 사용처 zuul의 공식문서에는 .. 2020. 1. 20.
[MSA] Spring Cloud Ribbon - 개념과 실습편 저번 시간까지는 Spring Cloud의 Hystrix에 대해서 알아보았습니다. 오늘은 Ribbon에 대해서 알아보도록 하겠습니다. Ribbon은 Client에 탑재하는 Load Balancer입니다. Load Balancer 우리가 일반적으로 사용하는 LoadBalancer는 서버사이드 로드밸런싱을 처리하는 L4 Switch와 같은 하드웨어 장비였습니다. 하지만 MSA에서는 이런 장비보다는 소프트웨어적으로 구현된 클라이언트사이드 로드밸런싱을 주로 이용합니다. 이들의 차이를 한번 알아보도록 하겠습니다. 위는 일반적인 L4 switch 기반의 로드 밸런서입니다. Client는 L4의 주소만 알고 있으면되며 모든 로드 밸런싱은 L4에서 처리해 주고 있습니다. 이런 하드웨어 기반의 서버 사이드 로드 밸런서의 .. 2020. 1. 12.
[MSA] Spring Cloud Hystrix - 실습편 안녕하세요. 저번 포스팅에 이어서 오늘도 Hystrix를 이어서 알아보도록 하겠습니다. 이번 시간에는 저번 시간의 내용을 코드를 통해 구현해보는 시간을 가지도록 하겠습니다. 의존성 gradle 기준으로 저는 2.1.0.RELEASE를 사용합니다. build.gradle 파일에 아래와 같이 주입합니다. implementation("org.springframework.cloud:spring-cloud-starter-netflix-hystrix:2.1.0.RELEASE") Hello Histrix 가장 먼저 "Hello Histrix"를 찍어보도록 하겠습니다. // HystrixCommand는 annotation을 import 하지않도록 주의하자. import com.netflix.hystrix.Hystrix.. 2020. 1. 8.
[MSA] Spring Cloud Hystrix - 개념편 안녕하세요. 요즘 저는 MSA에 관하여 주로 포스팅을 올리고 있습니다. 오늘은 Spring Cloud에서 Circuit Break의 역할을 하는 Hystrix에 대해서 알아보도록 하겠습니다. 이번 포스팅은 이론을 중심으로 진행할 것이며 다음시간에는 Spring Boot를 통한 실습을 중심으로 진행하도록 하겠습니다. Hystrix 개론 MSA 처럼 분산환경을 구성하다보면 서비스가 다양한 이유로 언젠가는 실패할 수 있습니다. 외부의 서버와 연결이 되지 않는다, 메모리 릭으로 인해 서버가 다운 된다. 등 다양한 이유로 말이지요. Hystrix는 이러한 장애상황에 대해 견딜 수 있도록해줍니다. 어떻게 장애 상황에 대해서 내성을 강화시켜 줄 수 있을까요? Hystrix는 아래와 같은 특징을 가지고 있습니다. 다른.. 2020. 1. 6.