반응형

IT/Spring Cloud 22

비대칭키 암호화

앞으로 구현할 Configuration 서비스의 개요입니다. 요약 keystore 디렉토리 생성 publicKey와 privateKey 만들기 Config Server의 bootstrap.yml에 설정 Config Server에서 사용하는 설정 파일(yml) 변경 소스코드 키를 저장할 keystore 디렉토리를 생성합니다. 그리고 privateKey와 publicKey를 생성합니다. 디렉터리 생성 : mkdir keystore 디렉터리 이동 : cd keystore privateKey 생성 : keytool -genkeypair -alias apiEncryptionKey -keyalg RSA -dname "CN=Kenneth Lee, OU=API Development, O=joneconsulting.co..

IT/Spring Cloud 2022.01.05

대칭키 암호화

앞으로 구현할 대칭키 암호화의 개요입니다. user-service의 application.yml에 있는 정보를 config server에 저장하여 암호화하고 사용하겠습니다. Spring Cloud Config 서버에서 암복화화를 합니다. 요약 Config Server에 bootstrap.yml을 만들고 (대칭)암호화키 설정 Config Server에서 관리하고 싶은 정보를 repository의 yml에 옮기기 ( user-service의 DB 접속 정보를 옮김 ) Postman으로 비밀번호를 암호화하고, 암호화된 해당 비밀번호를 Config Server의 user-service.yml에 입력 소스코드 Config service에 Dependency를 추가하겠습니다. org.springframework.c..

IT/Spring Cloud 2022.01.05

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
반응형