MSA

· MSA
Spring Cloud Config Server를 등록해서 외부에서 환경 설정을 설정하고 그것을 적용하는 방법들 3가지에 대하여 알아보았다. 그중에 마지막에 적어놨던 Spring Cloud Bus 에 대하여 알아보자 👄 Spring Cloud Bus 기존에 사용하던 actuator는 각각의 서비스가 공통된 환경설정을 가지고 있다면 환경 설정을 변경한 후에 모든 서비스에 actuator/refresh라는 요청을 전달해서 서비스의 환경 설정을 해주는 것으로 이해했습니다. 하지만 이것은 서비스가 늘어나면 늘어날수록 굉장히 비효율적인 것을 확인 할 수 있다. 그래서 MSA 구조에서micro 서비스를 메세지 브로커와 연결해주는 역할과 상태 및 구성에 대한 변경사항을 연결된 모든 microservice에게 전달해주..
💦 Config server 의 중요성 우리는 처음부터 각각의 서비스 설정 정보를 yml 파일을 통해 저장해두었다. 하지만 만약 설정 파일이 변경된다면 서비스 를 다시 빌드하고 배포해야 한다는 단점이 존재했다. 또한 그 설정파일이 모든 서비스에 동일하게 적용되야 하는 값이라면 더욱 불편해진다. 그래서 설정파일 정보를 외부에 설정을 하게 됨으로써 서비스를 더욱 유연하게 운영할 수 있게 된것이다. Spring Cloud Config 분산 시스템에서 서버 클라이언트 구성에 필요한 설정 정보를 외부 시스템에서 관리한다. 하나의 중앙화된 저장소에서 구성요소 관리가 가능하다 각 서비스를 다시 빌드하지 않고, 바로 적용이 가능하다 어플리케이션 배포 파이프라인을 통해 DEV(개발) - UAT(테스트) - PROD(운영..
🙏 API 명세서와 기능 구현 회원 로그인을 Security를 통해 진행한다. 또한 로그인을 성공하면 토큰과 userId를 반환받을 예정이다. 여기서 userId는 전달하면 안되는데 체크를 위해 가져오는 것이다. 🙏 AuthenticationFilter 추가 ▶ RequestLogin @Data public class RequestLogin { @NotNull(message = "Email cannot be null") @Size(min = 2, message = "Email not be less than two characters") @Email private String email; @NotNull(message = "Password cannot be null") @Size(min = 8, messa..
🦴 User Microservice 를 API Gateway에 등록 ▶ 연동을 위해 application.yml 파일에 등록 routes: - id: user-service uri: lb://USER-SERVICE predicates: - Path=/user-service/** 🦴 User Microservice 기능 추가(사용자 조회와 정보, 주문 내역 조회) 전체 사용자를 조회 할땐 현재 서비스에 가입된 회원 전체를 나타낸다 사용자의 Id를 통해 회원을 보려고 한다면 회원의 정보와 회원이 주문한 내역까지 함께 나타낸다. ▶ 전달 객체 1. ResponseUser @Data @JsonInclude(JsonInclude.Include.NON_NULL) public class ResponseUser { p..
👽 명세서 작성 Features 신규 회원 등록 회원 로그인 상세 정보 확인 회원 정보 수정 / 삭제 상품 주문 주문 내역 확인 API 명세서 라이브러리 등록 Lombok H2 Spring Boot DevTool - 굳이 웹을 종료하지 않아도 reload 해주는 기능이 포함되어 있다. Spring Web Eureka Discovery Client JPA Model Mapper 👽 기본 설정 코드 작성 1. UserServiceApplication @SpringBootApplication @EnableDiscoveryClient public class UserServiceApplication { public static void main(String[] args) { SpringApplication.run..
🐍 Api Gateway란? 사용자가 설정한 라우팅 설정에 따라 각각의 엔드포인트로 클라이언트를 대신해서 요청하고, 해당 응답을 받으면 다시 클라이언트에게 전달하는 proxy 역할을 한다. 시스템의 내부 구조를 숨기고, 외부의 요청에 대해 적절한 형태로 가공해서 응답을 진행 할 수 있다. Gateway 의 장점 인증 및 권한 부여에 대한 단일 작업 서비스 검색 통합 응답 캐싱 정책, 회로 차단기 및 QoS 다시 시도 속도 제한 부하 분산 로깅, 추적, 상관 관계 헤더, 쿼리 문자열 및 청구 변환 IP 허용 목록에 추가 🐍 Spring Cloud 에서의 MSA 통신 Spring Cloud 에서 MSA간 통신을 하기 위해 많이 사용하는 방식이 2가지가 존재한다 RestTemplate 전통적인 하나의 어플리케..
🍀 ServiceDiscovery Microservice 가 시작 될 때, 서비스 레지스트리에 자신을 등록하고, 다른 서비스 필요로 할 때 해당 레지스트리를 조회해서 서비스의 위치를 알아낼 수 있게 한다. 각각의 서비스를 ServiceDiscovery에 등록하고 이후 LB가 ServiceRegistry에 위치를 물어보고 나온 곳을 통해 호출하는 것이다. 왜 ServiceDiscovery 가 필요할까? API Gateway만 존재해도 해당 인스턴스의 IP를 직접 호출 할 수 있다. 하지만 어떤 서비스가 도메인을 사용하는 것이 아닌 IP를 사용한다던가 LB를 사용해 호출을 하게 된다면 그에 필요한 추가 설정이나 IP를 추가적으로 변경해주어야 하기 때문입니다 하지만 ServiceDiscovery를 사용하면 인..
· MSA
🌍 Monolith vs Microservices Microservice Architecture는 정반대되는 개념인 Monolith Architecture와 같이 설명할 때 그 이해가 훨씬 빠르다고 할 수 있다. ● monolithic 모든 업무 로직이 하나의 어플리케이션 형태로 패키지 되어 서비스를 진행한다. 어플리케이션에서 사용하는 데이터가 한 곳에 모여 참조되어 서비스되는 형태를 뜻한다. 데이터 베이스 또한 하나의 데이터베이스에서 모든 데이터를 저장한다. 문제점 서비스들중 하나의 문제만 발생하더라도 그것을 수정하고 전체 어플을 다시 빌드하고 테스트에 패키징까지 하는 데 이는 시간과 비용이 너무 크다는 것이다. ● microservice 비즈니스 기능 중심 구축 / 완전히 자동화된 배포 시스템을 갖추..
· MSA
시스템의 구성이 이전과 다르게 Local 에서 Cloud로 개선되었고 그로 인해 확장성과 안정성이 강화되었고 지속적인 변동이 발생하더라도 시스템을 유연하게 사용할 수 있도록 개선되었다. 이러한 시스템을 구성하는 대표적인 특성을 AntiFragile 과 Cloud Native 의 방식을 가지고 정리할 수 있다. ⚡ AntiFragile 이전까지의 시스템은 Fragile 즉, 깨지기 쉬운 성격을 가지고 있었다. 하지만 최근에는 이와 상반되는 AntiFragile의 성격을 가지고 개발이 된다는 것을 알수가 있다. Auto Scaling ( 자동 확장성 ) 시스템을 구성하는 인스턴스를 auto scaling group으로 묶어 유지되어야 하는 최소 인스턴스를 지정하고, 사용량에 따라 변동이 가능한 방식을 사용하..
늦은산책
'MSA' 카테고리의 글 목록 (2 Page)