본문 바로가기

SpringFramework/Spring Cloud (스터디)

(5)
Spring Cloud - (6장) 마이크로서비스 간의 커뮤니케이션 다양한 커뮤니케이션 스타일 마이크로 서비스 간의 다양한 커뮤니케이션 스타일을 식별하고 그것을 2차원으로 분류가 가능하다. 1] 동기식/비동기식 커뮤니케이션 프로토콜로 나눌 수 있다. - 동기식은 Restful API 등 HTTP 프로토콜로 진행 - 비동기식은 Rabbit MQ, Apache Kafka와 같은 메시지 기반 마이크로 서비스를 통해 구현할 수 있다. 2] 단일 메시지 혹은 다수의 수신기 여부에 따라 다양한 커뮤니케이션 타입을 나눈다. - 일대일 커뮤니케이션에서는 각 요청이 정확히 하나의 서비스 인스턴스에 의해 처리 - 일대다 커뮤니케이션에서는 각 요청이 다수의 다른 서비스에 의해 처리 스프링 클라우드를 사용한 동기식 통신 1. RestTemplate는 클라이언트가 RESTful 웹서비스를 사용..
Spring Cloud - (5장) 컨피그를 사용한 분산 컨피규레이션 분산 컨피규레이션? 애플리케이션의 컨피규레이션을 팻 JAR 파일 안에 제공하게되면, 마이크로서비스 인스턴스를 다시 컴파일하거나 다시 배포해야 하는 문제가 발생하는데, 분산 컨피규레이션을 사용하면 이러한 문제가 해소 - 클라우드 네이티브 환경에서 가장 인기 있는 표준 - 분산 시스템에서 외부 컨피규레이션을 위해 서버 측과 클라이언트 측을 지원 - 전체 환경에 걸쳐 애플리케이션을 위한 외부 속성을 관리하는 중앙의 단일 저장소를 두어서 사용 사용예) VCS(버전관리 시스템) 파일 시스템 볼트(Vault) - 서버는 단지 HTTP와 자원 기반(Restful API) 인터페이스를 노출하는 것이 전부이며, JSON 혹은 YAML, 속성 형태로 반환 (+ 암호화 복호화 수행 지원) HTTP API 자원의 소개 컨피그..
Spring Cloud - (4장) 서비스 디스커버리 유레카와 통합을 위한 스프링 클라우드 라이브러리 구성 - 서버 API - 등록된 서비스 목록 수집을 위한 API - 새로운 서비스를 네트워크 위치 주소와 함께 등록하기 위한 API - 클라이언트 API - 마이크로서비스 애플리케이션에 의존성을 포함해 사용함 - 애플리케이션 등록과 등록해제(시작과 종료)를 담당하고, 유레카 서버로부터 주기적으로 최신 서비스 목록을 받아옴 서버측 유레카 서버 실행 - 의존성 추가 - org.springframework.cloud.spring-cloud-starter-eureka-server - (OR) org.springframework.cloud.spring-cloud-starter-netflix-eureka-server - 메인 애플리케이션 클래스에 유레카 서버 활성화 ..
Spring Cloud - (3장) 스프링 클라우드 개요 + 주요 프로젝트 스프링 클라우드(Spring Cloud) - 분산/버전관리, 서비스 등록 및 검색 가능, 라우팅, 서비스간 호출, 부하분산, 회로차단기, 분산메시지 등의 기능을 사용할 수 있는 도구. (스프링 부트와 스프링클라우드 버전에 유의하여 사용해야 함) 12-팩터 앱(The Twelve-Factor App) - 확장 가능하고 쉽게 클라우드 플랫폼에 배포할 수 있다 - 지속 배포 프로세스에 따라 배포되는 SaaS(Software as a Service)를 개발하는 방법론 - 스프링 부트 & 스프링 클라우드는 12-팩터 룰에 부합하는 애플리케이션 만드는 기능 & 요소 제공 (?) SaaS(Software as a Service란? : 서비스 사업자가 인터넷을 통해 소프트웨어를 제공하고 사용자가 인터넷상에서 이에 원격..
Spring Cloud - (1장) 마이크로서비스를 위한 스프링 & 소개 마이크로서비스란? IT 시스템 아키텍처 접근 방식 중 하나로, 비즈니스 요구사항을 구현한 하나의 애플리케이션을 느슨하게 연결된 여러 애플리케이션으로 쪼개는 것을 말함. 그래서.. 마이크로서비스의 장점은? 1] 대규모의 복잡한 애플리케이션을 지속해서 배포하는 능력이 있다. 2] 소스 코드 규모가 상대적으로 작아서 프로젝트에 새로 참여하는 개발자가 이해하기 쉽다. 3] 분리. 복잡한 엔터프라이즈 시스템을 대룰 때 서브시스템에 따라 시스템을 나누는데 계속 하위 시스템을 만들다보면 개발자가 조직에 새로운 들어온 직원인 경우에는 더욱 이해하기 어려워지는 문제를 해결할 수 있다. 이전까지는 마이크로 서비스 환경을 지원하는 안정적인 프레임워크가 많지 않았는데, 스프링 클라우드에서는 - 서비스 레지스트리 - 컨피규레이..