Microservcie간 통신 방법 REST Template OpenFeign(@FeignClient) Kafka 💡 Feign Web Service Client FeignClient → HTTP Client REST Call을 추상화 한 Spring Cloud Netflix 라이브러리 사용 방법 호출하려는 HTTP Endpoint에 대한 interface를 생성 @FeilgnClient 선언 Load balanced 지원 user를 조회하면 주문도 조회하는 것을 해보자. 1. 라이브러리 추가 user-service pom.xml org.springframework.cloud spring-cloud-starter-openfeign UserServiceApplication.java @EnableFeignC..
공부/MSA
Communication Types 1. Cynchronous(동기) HTTP commuication 이는 클라이언트와 서버 간의 통신이 비동기적으로 이루어지는 경우를 나타냅니다. AMQP (Advanced Message Queuing Protocol)는 메시지 큐를 사용하여 메시지를 비동기적으로 전달하는 프로토콜입니다. 클라이언트가 요청을 보내면 서버는 해당 요청을 처리하고, 클라이언트는 서버의 응답을 기다리지 않고 다른 작업을 수행할 수 있습니다. 💡 Rest Template 💡 Rest Template Rest Template은 Spring Framework에서 제공하는 클래스로, RESTful 웹 서비스와 통신하기 위한 도구입니다.일반적으로 Rest Template은 동기적인 방식으로 사용되며, ..
Encryption types Symmetric Encryption (Shared), 대칭키 Using the same key Asymmetric Encryption (RSA Keypair), 비대칭키 Private and Public Key Usng Java keytool 인크립션과 디크립션에 서로 다른 키(Public Key, Pricate Key)가 사용된다. Public Key는 주로 암호화할 때, Private Key는 주로 복호화할 때 사용 Symmetric Encryption (Shared), 대칭키 config-service 의존성 추가 org.springframework.cloud spring-cloud-starter-bootstrap bootstrap.yml User Microservi..
configuration values 변경했을 때 방영하는 3가지 방법 이어서... 1. 서버 재가동 2. Actuator의 refresh옵션(서버 재가동 X) 참고링크 - Spring Boot Actuator Dependendy추가 - Application 상태, 모니터링 - Metric 수집을 위한 Http End point 제공 3. Spring cloud bus 사용 (서버 재가동 X) 3. Spring cloud bus 사용 (서버 재가동 X) Spring cloud bus 사용 분산 시스템의 노드(마이크로 서비스)를 경량 메시지 브로커(RabbitMQ)와 연결 상태 및 구성에 대한 변경 사항을 연결된 노드에게 전달(Broadcast) Actuator 변경된 데이터를 갖고 왔을 때 Spring ..
yaml파일의 내용이 변경되나거나 어플리케이션 자체가 다시 빌드가 되고 다시 배포가 되어야 한다. 이런 상황을 개선하기 위해서 어플리케이션 내부에 구성파일을 갖는 것이 아니라 외부에 가지고 있는 걸로 해결. 구성정보 파일을 하나만 만들어서 사용하는 것이 아니라 마이크로 서비스가 개발되고 각각의 단계에 맞춰서 설정파일을 바꿔서 사용하는것을 스프링부트에서는 프로파일이라고 얘기한다. 다양한 프로파일을 만들어서 구성파일을 이 프로파일 환경에 맞춰 설정하고 사용하는 방법을 알아보자. 분산 시스템에서 서버, 클라이언트 구성에 필요한 설정 정보(application.yml)를 외부 시스템에서 관리 하나의 중앙화 된 저장소에서 구성요소 관리 가능 각 서비스를 다시 빌드하지 않고, 바로 적응 가능 에플리케이션 배포 파이..
Users Microservice 개요APIs기능URI(API Gateway 사용 시)URI(API Gateway 미사용 시)HTTP Method사용자 로그인/user-service/login/loginPOST사용자 정보 수정 삭제추후 구현 개인적으로 구현 인증user-serviceRequestLogin.class 생성 @Datapublic class RequestLogin { @NotNull(message = "Email cannot be null") @Size(min = 2, message = "Email not be less than 2 characters") @Email private String email; @NotNull(message = "Password..
Catalogs and Orders Microservice 개요 APIs 기능 URI(API Gateway 사용 시) URI(API Gateway 미사용 시) HTTP Method 상품 목록 조회 Catalogs Microservice /catalog-service/catalogs GET 사용자 별 상품 주문 Orders Microservice /order-service/{user_id}/orders POST 사용자 별 주문 내역 조회 Orders Microservice /order-service/{user_id}/orders GET Orders Microservice 프로젝트 생성 build.gradle ModelMapper dependancy 추가 maven org.modelmapper modelma..
Catalogs and Orders Microservice 개요 APIs 기능 URI(API Gateway 사용 시) URI(API Gateway 미사용 시) HTTP Method 상품 목록 조회 Catalogs Microservice /catalog-service/catalogs GET 사용자 별 상품 주문 Orders Microservice /order-service/{user_id}/orders POST 사용자 별 주문 내역 조회 Orders Microservice /order-service/{user_id}/orders GET Catalogs Microservice catalog-service 프로젝트 생성 버전은 이전에 user-service했던 것 처럼 다 낮추자.. 그래야 강의처럼 돌아간다...
Users 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 User Microservice와 Spring Cloud Gateway ..
업뎃(2024.04) 참고링크 : WebSecurityConfigurerAdapter 지원 중단 Users Microservice - Spring Security 연동 Spring Security는 Authentication(인증)과 Authorization(권한)과 관련된 작업을 처리할 수 있도록 해준다. 💡 인증(Authentication), 권한(Authorization) 💡 인증(Authentication) 사용자나 시스템이 자신이 주장하는 신원을 확인하는 프로세스 사용자가 시스템에 로그인하거나 특정 서비스에 액세스하기 위해 자격 증명(예: 아이디와 비밀번호)를 제공하는 것 💡 권한(Authorization) 적절한 인증이 통과되었을 때 할 수 있는 작업들이 어떤 것들이 있는가 통과가 안되었을 때..