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.. 더보기 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.. 더보기 Spring Cloud Gateway SPRING CLOUD GATEWAY란? Netty를 사용 Spring Cloud Gateway는 Tomcat이 아닌 Netty를 사용합니다. API GATEWAY는 모든 요청이 통과하는 곳이기 때문에 성능적인 측면이 매우 중요하며 기존의 1THREAD / 1REQUEST 방식인 SPRING MVC를 사용할 경우 성능적인 이슈가 발생할 수 있습니다. Netty는 비동기 WAS이고 1THREAD / MANY REQUESTS 방식이기 때문에 기존 방식보다 더 많은 요청을 처리할 수 있습니다. 동작방식 출처 :https://cloud.spring.io/spring-cloud-static/spring-cloud-gateway/2.1.0.RELEASE/single/spring-cloud-gateway.html 클.. 더보기 이전 1 다음