Micro Services Architecture
-
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 프..
-
1. Micro Services Architecture 란Spring Cloud 2021. 3. 23. 15:07
Monolithic Architecture와 Micro Services Architecture 과거에는 소프트웨어의 모든 구성요소들이 하나의 Application에 통합 개발되어 빌드되고 배포하는 설계가 많았습니다. 이러한 방식을 모놀리식(Monolithic) 아키텍처라고 부릅니다. MSA 쇼핑몰이라는 가상의 프로젝트를 예로 들겠습니다. 위의 그림에서 쇼핑몰의 서비스 기능으로 "상품", "배송", "회원관리", "주문" 등이 있으며 각각의 서비스들은 하나의 어플리케이션 안에 기능들이 강하게 결합되어 있습니다. 또한, 하나의 DB에 관련 서비스의 모든 테이블이 포함되어 있습니다. 하여, 모든 기능 및 DB가 통합되어 있다보니 다음과 같은 여러가지 한계점이 드러나게 되었습니다. 1. 부분 장애가 전체 시스템..