Spring Cloud
-
9. [MSA 구현 퀵스타트] 장애대응 Hystrix 초간단 구현Spring Cloud 2021. 7. 19. 01:49
이번 포스팅에서는 장애 대응(장애 전파 방지 및 복구)에 중요한 라이브러리인 Hystrix를 구현해 보겠습니다. 이론적인 부분(1~3장)과 구현할 전체 프로젝트 구조(4장)를 보지 읽지 못하신 분들은 먼저 읽어보시기를 권장 드립니다. 지난 포스팅인 "3. MSA 구현을 위한 핵심 프레임워크를 알아보자 2"에서 Hystrix에 대한 개요를 알아보았는데, 더욱 자세히 정리를 해보겠습니다. Hystrix의 중요한 아래와 같은 용어가 있습니다. Circuit Breaker Fallback Thread Isolation Timeout 1. Circuit Breaker & Timeout Hystrix가 관리하는 기능들은 요청 처리에 대한 통계가 내부적으로 집계됩니다. 통계를 분석하여 특정 기능이 일정 시간동안 일정..
-
8. [MSA 구현 퀵스타트] API G/W Zuul 초간단 구현 2Spring Cloud 2021. 7. 3. 18:17
지난 장에서는 Zuul의 필터에서 단순한 로그를 출력함으로써 Pre / Route / Post 필터의 동작을 확인하였습니다. 이번 장에서는 지난장에 이어서 Zuul API Gateway의 실무에서 거의 필수적으로 구현되는 몇 가지 기능을 좀 더 확장하여 구현해 보겠습니다. 이번장 구현할 내용 요청 URI와 Http Body를 추출하여 로깅합니다. 인증 : 유효한 요청인지 확인하기 위하여, Http Header 담긴 Authorzation을 추출하여 인증합니다. * 정상 요청이 아닐 경우 Http Status 401(Unauthorized)을 반환하고, 서비스로 라우팅을 하지 않습니다. Http Header에 추가적인 커스텀 정보 담아서 서비스에 요청 보냅니다. 서비스로 부터 받은 응답 http Statu..
-
7. [MSA 구현 퀵스타트] API G/W Zuul 초간단 구현Spring Cloud 2021. 4. 11. 02:38
마이크로 서비스 아키텍처의 단일 진입점을 담당하는 API Gateway를 구현해 보도록 하겠습니다. 이론적인 부분(1~3장)과 구현할 전체 프로젝트 구조(4장)를 보지 읽지 못하신 분들은 먼저 읽어보시기를 권장 드립니다. API Gateway를 구현하는 많은 라이브러리가 존재하지만, 그중에서 가장 많이 쓰는 Zuul과 Spring Cloud에서 개발한 Spring Cloud Gateway(SCG)을 알아보겠습니다. Zuul(version 1)은 초창기에 Netflix에서 개발한 뒤 현재까지도 현업에서 꾸준히 사용되고 있는 라이브러리 입니다. 그만큼 구현 및 운영을 위한 자료가 많이 축척되어 있는 장점이 있습니다. Spring Cloud Gateway는 이름 그대로 Spring의 Pivotal에서 만들어진..
-
6. [MSA 구현 퀵스타트] HTTP 통신 Ribbon과 Feign 초간단 구현Spring Cloud 2021. 4. 1. 23:29
이번장은 서비스간 HTTP 통신하는 방법에 대해 구현해 보겠습니다. 지난 장에서 구현하였던 서비스디스커버리 정보를 이용하여 서비스1에서 서비스2의 API를 호출하여 정보를 받아오는 기능입니다. 예제 소스 이번장에 진행될 소스는 아래 Github에서 다운로드 받으시고, "2.Rest-API-Call" branch를 체크아웃해주세요. URL : https://github.com/chanheejung/SimpleMSA 개요 지난장에서 각 서비스들은 유레카 서버에서 주기적으로 다른 서비스들의 정보를 가져오고 이를 로컬에 캐싱한다고 하였습니다. 그리고 이 정보를 이용하여 서비스 고유명만으로 통신이 가능합니다. 구현할 API는 아주 단순 합니다. 서비스2 : 단순히 ID를 받으면 해당 ID의 이름을 반환합니다. (..
-
5. [MSA 구현 퀵스타트] 서비스 디스커버리 초간단 구현Spring Cloud 2021. 3. 28. 14:55
이번 장에서는 초 간단한 서비스 2개(Service1, Service2)를 만들고 이를 서비스디스커버리 서버인 Eureka Server에 연계하는 작업을 구현해 보겠습니다. 예제 소스 이번장에 진행될 소스는 아래 Github에서 다운로드 받으시고, "1.Discovery&Service" branch를 체크아웃해주세요. URL : https://github.com/chanheejung/SimpleMSA Postman API 또한, 예제를 실행하기위한 API를 POSTMAN Collection을 함께 올렸습니다. 뒤늦게 올려서 최종 main branch에서만 보일 것입니다. "Postman" 폴더에 들어가 보시면, "Simple MSA.postman_collection.json" 파일이 있습니다. 해당 파일..
-
4. [MSA 구현 퀵스타트] 초간단한 MSA 개발하자Spring Cloud 2021. 3. 26. 23:57
앞서 알아본 이론을 기반으로 드디어!! 여러 장에 걸쳐서 실제 MSA 프로젝트를 구축을 시작해 보겠습니다. MSA의 개요와 Spring Cloud의 주요 라이브리들의 이해가 선행되어야 실제 개발하는데 수월하기에 혹시 앞장을 못보신 분들은 먼저 읽어보시고 시작하시길 권장드립니다. 1. Micro Services Architecture 이란 2. MSA 구현을 위한 핵심 프레임워크를 알아보자 1 3. MSA 구현을 위한 핵심 프레임워크를 알아보자 2 앞으로 진행될 포스팅과 관련된 소스는 아래 Github 주소에서 다운로드 가능합니다. URL : https://github.com/chanheejung/SimpleMSA 2021년 3월 26일 기준으로 이번장의 그림4-1에서 설명하는 내용이 구현되어 있습니다. ..
-
3. MSA 구현을 위한 핵심 프레임워크를 알아보자 2Spring Cloud 2021. 3. 25. 23:51
지난 장에서는 Spring Cloud의 개요와 서비스 디스커버리, 클라이언트측 부하 분산을 알아보았습니다. 이번장에서는 API Gateway, 장애 전파방지와 복구, Config Server와 관련된 라이브러리를 알아봄으로써 Spring Cloud 전반적인 이해를 다지도록 하겠습니다. 만약 아직 이전 장을 보지 못하신 분들은 "2. MSA 구현을 위한 핵심 프레임워크를 알아보자 1"을 먼저 읽어보시길 권장드립니다. API Gateway - 단일 지점 앞장에서 작게 분리된 서비스들을 서비스 디스커버리(Eureka)를 이용하여 서로의 정보를 관리하고 클라이언트부하분산(Ribbon 이용)으로 통신한다고 하였습니다. 여기서 한가지 의문점이 있습니다. 내부에서는 디스커버리 서버를 통해 서로의 정보를 공유하고 통신..
-
2. MSA 구현을 위한 핵심 프레임워크를 알아보자 1Spring Cloud 2021. 3. 25. 00:38
이번장과 다음장에서는 Micro Services Architecture(MSA)를 구축하기 위한 Spring Cloud 프레임워크의 핵심 라이브러리들의 개념을 알아보고자 합니다. (원래는 한편에 모두 담으려 하였으나 내용이 길어져 두편으로 나눴습니다.) 핵심 라이브러리 들이 어떤 것들이 있으며 각각이 서로 어떻게 상호 작용을 하면서 MSA 환경이 구축되고 운영되어지는지에 대해 알게 된다면 막연했던 MSA 구축이 보다 명확해지리라 생각합니다. Spring Cloud Framework Spring Cloud는 Spring Boot 기반으로 제작되었으며, 클라우드 환경을 보다 편리하게 구축하기 위해 설계된 라이브러리 입니다. 이러한 Spring Cloud에서는 MSA 구축에 널리 쓰인 Netflix OSS 프..