반응형

IT 85

Spring Cloud Bus

앞으로 구현할 Spring Cloud Bus 서비스의 개요입니다. 분산 시스템입니다. 마이크로서비스는 데이터(메시지)를 미들웨어(분산 시스템)에 보내면, 해당 데이터(메시지)가 필요하다고 설정해 놓은 어떤 마이크로서비스가 가져가는 방식입니다. 설정 정보를 변경하는 방법은 이전 시간에 배운 Actuator의 refresh가 있습니다. 혼자 많은 서버를 관리하다 보면 서버 하나 하나를 refresh를 해야하는 번거로움이 있을 수 있습니다. 여기서는 Spring Cloud Bus를 이용해서 설정 정보를 알아서 서비스들이 가져가서 적용하도록 해보겠습니다. AMQP를 이용해서 통신하고 RabbitMQ를 이용합니다. AMQP (Advanced Message Queuing Protocol) 의미 : 메시지 지향 미들..

IT/Spring Cloud 2022.01.05

Configuration Service

앞으로 구현할 Configuration 서비스의 개요입니다. 분산 시스템에서 서버 클라이언트 구성에 필요한 설정 정보(application.yaml)를 외부 시스템에서 관리 하나의 중앙화 된 저장소에서 구성요소 관리 가능 각 서비스를 다시 빌드하지 않고, 바로 적용 가능 애플리케이션 배포 파이프라인을 통해 Dev - Stg - Prd 환경에 맞는 구성 정보 사용 Spring Cloud Config Server는 설정 정보를 가지고 와서 마이크로서비스에 적용합니다. Config Server가 읽어들이는 구성 파일의 우선 순위가 있습니다. 1. application.yml 2. application-name.yml : 예시) ecommerce.yml 3. application-name-.yml : 예시) e..

IT/Spring Cloud 2021.12.30

User Microservice - 회원 로그인

앞으로 구현할 유저 서비스의 개요입니다. APIs 입니다. 기능 URI (API GW 사용 시) URI (API Gateway 미사용 시) HTTP Method 사용자 로그인 /user-service/login /login POST 프로젝트는 이전에 사용하던 User-Service를 가져옵니다. 회원 로그인 구성은 아래와 같습니다. 사용자로부터 email과 password를 받습니다. attempAuthentication() 메소드로 인증을 시작합니다. UsernamePasswordAuthenticationToken으로 email과 password를 토큰으로 만들어 줍니다. loadUserByUsername() 메소드에서 usename( email과 동일 )로 데이터베이스에서 사용자 정보를 가져와 Use..

IT/Spring Cloud 2021.12.17

Order Service

앞으로 구현할 주문 서비스의 개요입니다. APIs입니다. 기능 마이크로서비스 URI (API Gateway 사용시) HTTP Method 사용자 별 상품 주문 Orders Microservice /order-sercie/{user_id}/orders POST 사용자 별 주문 내역 조회 Orders Microservice /order-service/{user_id}/orders GET 프로젝트를 생성하겠습니다. 아래 Dependencies를 추가합니다. Spring Boot DevTools : 코드가 변경되면 자동으로 애플리케이션 재시작 등 하기 위해서 추가 ... 참조 Lombok : 코드 작성을 편하게 하기 위해서 추가 ... 참조 Spring web : REST API 작성하기 위해서 추가 Eurek..

IT/Spring Cloud 2021.12.15

Catalogs Microservice

앞으로 구현할 카탈로그 마이크로서비스 입니다. APIs입니다. 기능 마이크로서비스 URI (API Gateway 사용시) HTTP Method 상품 목록 조회 Catalogs Microservice /catalog-service/catalogs GET 프로젝트를 생성하겠습니다. 아래 Dependencies를 추가합니다. Spring Boot DevTools : 코드가 변경되면 자동으로 애플리케이션 재시작 등 하기 위해서 추가 ... 참조 Lombok : 코드 작성을 편하게 하기 위해서 추가 ... 참조 Spring web : REST API 작성하기 위해서 추가 Eureka Discovery Client : Eureka discovery 사용하기 위해서 추가 필요한 dependencies를 추가하겠습니다..

IT/Spring Cloud 2021.12.15

User Microservice - 회원 등록

앞으로 구현할 유저 서비스의 개요입니다. APIs 입니다. 기능 URI (API Gateway 사용 시) URI (API Gateway 미사용 시) HTTP Method 사용자 정보 등록 /user-service/users /users POST 전체 사용자 조회 /user-service/users /users GET 사용자 정보, 주문 내역 조회 /user-service/users/{user_id} /users/{user_id} GET 작동 상태 확인 /user-service/users/health_check /users/health_check GET 환영 메시지 /user-service/users/welcome /users/welcome GET 프로젝트를 생성하겠습니다. 아래 Dependencies를 ..

IT/Spring Cloud 2021.12.13

애플리케이션 개요

이제부터 예시 애플리케이션을 만들어서 Spring Cloud MSA를 배워보겠습니다. 아래 이미지는 앞으로 구현할 애플리케이션의 개요입니다. 마이크로서비스 Catalog-Service : 제품 정보 서비스 User-Service : 유저 서비스 Order-Service : 주문 서비스 위 같은 비지니스 로직이 되도록 구현하기 위해서 애플리케이션 구성을 아래와 같이 할 것입니다. 구성요소 Config Server : Git 저장소에 등록된 프로파일 정보 및 설정 정보 Eureka Server : 마이크로서비스 등록 및 검색 API Gateway Server : 마이크로서비스 부하 분산 및 서비스 라우팅 Microservices : 회원 MS, 주문 MS, 상품(카테고리) MS Queuing System :..

IT/Spring Cloud 2021.12.08

API Gateway

https://spring.io/projects/spring-cloud-gateway Spring Cloud Gateway @SpringBootApplication public class DemogatewayApplication { @Bean public RouteLocator customRouteLocator(RouteLocatorBuilder builder) { return builder.routes() .route("path_route", r -> r.path("/get") .uri("http://httpbin.org")) .route("host_route", r -> spring.io API Gateway는 프록시와 비슷한 역할을 합니다. API Gateway는 클라이언트의 요청을 받아서 내부의 ..

IT/Spring Cloud 2021.12.07

Service Discovery

https://spring.io/projects/spring-cloud-netflix Spring Cloud Netflix Spring Cloud Netflix features: Service Discovery: Eureka instances can be registered and clients can discover the instances using Spring-managed beans Service Discovery: an embedded Eureka server can be created with declarative Java configuration Circuit B spring.io 서비스 디스커버리는 핸드폰의 연락처와 비슷합니다. 이름에 매핑된 전화번호를 저장하고 있습니다. "이름 : 전화번..

IT/Spring Cloud 2021.12.05

Spring Cloud란?

https://spring.io/projects/spring-cloud Spring Cloud Spring Cloud is an umbrella project consisting of independent projects with, in principle, different release cadences. To manage the portfolio a BOM (Bill of Materials) is published with a curated set of dependencies on the individual project. Go here to r spring.io 스프링 클라우드는 분산 시스템 개발에 효과적인 기능을 제공해 줍니다. 분산 시스템이라고 하면 circuit breakers, routing,..

IT/Spring Cloud 2021.12.05
반응형