MSA

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

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

    RabbitMq 설치하는방법

    MSA 프로젝트를 준비하며 여러가지 준비사항이 있지만 느슨한 결합을 위해 MQ (Message Queue) 가 필요하다. 여러가지 이런 메세징 기능이 있는 툴이 있지만 RabbitMQ를 일단 사용해보려한다. 어떻게 설치하는지 간단히 알아보자. Downloading and Installing RabbitMQ — RabbitMQ Downloading and Installing RabbitMQ The latest release of RabbitMQ is 3.8.9. See change log for release notes. See RabbitMQ support timeline to find out what release series are supported. Experimenting with RabbitMQ..

    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..