▼ Backend/└ MSA, Spring Cloud
-
Spring Cloud MSA | 마이크로서비스 아키텍처(microservice architecture, MSA)▼ Backend/└ MSA, Spring Cloud 2021. 12. 7. 14:11
▶ 마이크로 서비스 아키텍처(microservice architecture, MSA) 마이크로 서비스는 애플리케이션 구축을 위한 아키텍처 기반의 접근 방식이다. 마이크로 서비스를 전통적인 모놀리식(monolithic) 접근 방식과 구별 짓는 기준은 애플리케이션을 핵심 기능으로 세분화하는 것이다. 각 기능을 서비스라고 부르며 독립적으로 구축하고 배포할 수 있다. 이는 개별 서비스가 다른 서비스에 부정적 영향을 주지 않으면서 작동 (또는 장애가 발생)할 수 있음을 의미한다. 이러한 마이크로서비스 아키텍처 기반의 서비스를 구축해보면서 그 과정 속에서 생겨난 기능들을 사용해보며 이해하는 것에 목적을 두고 작성했다. Config Server - Config-Server 구축하기 구성 데이터를 담당하고 각각의 마이..
-
Spring Cloud MSA - 6 | Spring Cloud Gateway, Load balancing 구현하기▼ Backend/└ MSA, Spring Cloud 2021. 12. 7. 11:18
Spring Cloud MSA | 마이크로 서비스 아키텍처 (microservice architecture, MSA) ▶ Spring Cloud Gateway (SCG) 마이크로 서비스 앞단에 위치하며 요청들을 라우팅 설정에 따라서 클라이언트 대신에 요청하고 응답하면 다시 사용자에게 전달해주는 Proxy 역할을 한다. 즉, 모든 요청을 받아 라우팅 설정에 따라 요청한 서비스로 요청, 응답하는 입구 역할을 한다. 📌 특징 Spring Framework 5, Project Reactor 및 Spring Boot 2.0을 기반으로 구축 모든 요청 속성에서 경로를 일치시킬 수 있다. 조건자와 필터는 경로에 따라 다르다. 회로 차단기 통합 Spring Cloud Discovery, Client 통합 요청 속도 제..
-
Spring Cloud MSA - 5 | Circuit Breaker, Resilience4J 구현하기▼ Backend/└ MSA, Spring Cloud 2021. 12. 3. 17:59
▶ Circuit Breaker란 어떤 서비스가 과부하 또는 장애가 발생하였을 때 그 서비스를 호출하는 다른 서비스들의 연쇄적인 장애를 막기 위해 미리 차단하여 전체 서비스에 영향이 없게 방지하기 위한 기능이다. 대표적인 Circuit Breaker 중 하나인 Netflix Hystrix를 사용하려고 했으나 Deprecated 되어 있는 걸 확인했다. 스프링 블로그를 찾아보니 아래의 Netflix 프로젝트들이 Entering Maintenance Mode (Spring Cloud 팀이 더 이상 모듈에 새로운 기능을 추가하지 않는다는 것을 의미) 된다는 내용이 있었다. 삭제가 되어 사용이 불가능한 것은 아니지만, 새로운 프로젝트 환경에서는 Resilience4J를 사용하는 것을 대안으로 하고 있다고 한다...
-
Spring Cloud MSA - 4 | Eureka를 이용한 서비스 관리-2 (Eureka Client)▼ Backend/└ MSA, Spring Cloud 2021. 11. 27. 17:58
Spring Cloud MSA - 3 | Eureka를 이용한 서비스 관리 - 1 (Eureka Server 구축) Spring Cloud MSA - 3 | Eureka를 이용한 서비스 관리-1 (Eureka Server 구축) ▶ Spring Cloud - Netflix Eureka Server 로드 밸런싱과 Middle-tier server(Client와 Application server 사이) 장애 시 장애 조치 처리를 목적으로 한 REST 기반 서비스다. MSA(마이크로 서비스 아키텍처, Micr.. kitty-geno.tistory.com ▶ Spring Cloud - Netflix Eureka Client Service Discovery는 마이크로 서비스 기반 아키텍처의 핵심 원칙 중 하나이다..
-
Spring Cloud MSA - 3 | Eureka를 이용한 서비스 관리-1 (Eureka Server 구축)▼ Backend/└ MSA, Spring Cloud 2021. 11. 26. 17:57
▶ Spring Cloud - Netflix Eureka Server MSA(마이크로 서비스 아키텍처, Micro Service Architecture) 구조에서 서비스들은 동적으로 확장, 축소되는데 이때마다 인스턴스를 관리하기란 쉬운 일이 아니다. 따라서 인스턴스의 상태를 동적으로 관리하는 서버가 필요했는데 이를 서비스 디스커버리(Service Discovery) 서버로 칭하며 넷플릭스는 Eureka라는 이름으로 공개했다. 로드 밸런싱과 Middle-tier server(Client와 Application server 사이) 장애 시 장애 조치 처리를 목적으로 한 REST 기반 서비스 각각의 서비스 인스턴스들이 동적으로 확장, 축소되더라도 인스턴스의 상태를 하나의 서비스로 관리할 수 있는 서비스 이 포..
-
Spring Cloud MSA - 2 | 마이크로서비스 Config Client 구축하기▼ Backend/└ MSA, Spring Cloud 2021. 11. 12. 16:57
▶ Spring Cloud Config Client Config-Server를 Fetching 하여 환경 구성 데이터를 읽어오는 Config-Client를 설정해본다. 고유 목적의 마이크로 서비스는 동일한 Config-Server를 설정함으로써 공통적인 환경을 가져오거나 애플리케이션에 맞게 가져올 수 있다. 그리고 actuator의 refresh를 통해 변경된 설정 값도 서버의 재시작 없이 적용이 가능하다. build.gradle plugins { id 'org.springframework.boot' version '2.5.6' id 'io.spring.dependency-management' version '1.0.11.RELEASE' id 'java' } group = 'com.venh.msa' ve..
-
Spring Cloud MSA - 1 | Config-Server 구축하기▼ Backend/└ MSA, Spring Cloud 2021. 11. 12. 14:21
Spring Cloud Config Server란 중앙 집중식 서비스로 애플리케이션 구성 데이터 관리를 담당하고 애플리케이션 데이터를 마이크로 서비스와 완전히 분리하는 역할을 담당한다. 각각의 마이크로 서비스 배포 대상 환경에 맞게 구분하여 적용이 가능하다. 설정이 변경되었을 때 서버의 재시작 없이 동적으로 적용된다. 설정 파일 GitHub https://github.com/conf312/venh-msa-config.git GitHub에 올라가 있는 파일 중 venh(application:name)-dev(profiles:active).yml를 예를 들어 설명하면 이 파일명은 마이크로 서비스 Properties Source에서 아래처럼 설정되어 사용된다. 지금 우리가 만드는 것은 마이크로 서비스의 con..