MSA

    Msa 로드밸런싱 동기화 문제 해결방안

    사이트 규모가 증가함에 따라서 과부하를 처리 하는 방식 중 하나를 로드 밸런싱이라 합니다. 그리고 로드 밸런싱은 N개의 다른포트에 똑같은 서비스 ( ex : 주문 서비스 ) 를 기동시켜 교차하며 서비스를 제공하도록 합니다. 이 방법은 굉장히 효율적으로 과부하에 대비 할 수 있지만 한가지 문제점이 존재합니다. 바로 데이터 동기화의 문제 인데, 만약 H2 DB처럼 각 Port별로 어플리케이션 실행 시 생성되는 DB인 경우에는 어떨까요? #Load Balancer의 동작원리 많이 생략되어 있지만, LoadBalancer에서 어떤 Port로 접속 할지 접속 정보를 가지고 있습니다. 그리고 처음으로 요청이 들어오면, 보시는 것처럼 9091 Port로 요청값을 보냅니다. 그럼 9091Port 에서 H2-DB에는 유..

    Spring Cloud로 개발하는 마이크로서비스 애플리케이션_Catalogs and Orders Microservice

    Spring Cloud로 개발하는 마이크로서비스 애플리케이션(MSA) Users Microservice와 Spring Cloud Gateway 연동 Controller에서 port 출력 @GetMapping("/health_check") public String status() { return String.format("It's Working in User Service on PORT %s", env.getProperty("local.server.port")); } apigateway-service 프로젝트 route 정보 입력 application.yml routes: - id: user-service uri: lb://USER-SERVICE predicates: - Path=/user-service/..

    Spring Cloud 로 개발하는 마이크로서비스 UserService 1-2

    Spring Cloud로 개발하는 마이크로서비스 애플리케이션(MSA) Users Microservice - JPA① build.gradle_validation dependency 추가 implementation 'org.springframework.boot:spring-boot-starter-validation' VO 생성 @Data public class RequestUser { @NotNull(message = "Email cannot be null") @Size(min = 2, message = "Email not be less than two characters") @Email private String email; @NotNull(message = "Name cannot be null") @Si..

    Spring Cloud 로 개발하는 마이크로서비스 UserService 1-1

    Spring Cloud로 개발하는 마이크로서비스 애플리케이션(MSA) 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 U..