MSA23 서비스 게이트웨이 & API 게이트웨이 서비스 게이트웨이(Service Gateway)와 API 게이트웨이(API Gateway)는 마이크로서비스 아키텍처(MSA)에서 요청(Request)과 응답(Response)을 효율적으로 관리하기 위해 사용됩니다. 이 두 용어는 비슷해 보이지만 사용 환경과 적용 범위가 다릅니다.1. 서비스 게이트웨이 (Service Gateway)정의서비스 게이트웨이는 마이크로서비스 간의 내부 통신을 관리하고 조율하는 역할을 합니다.주로 서비스 간의 네트워크 요청에 대해 라우팅, 보안, 트래픽 관리, 서비스 디스커버리 등을 제공합니다.특징서비스 디스커버리:서비스 게이트웨이는 서비스 레지스트리(Eureka, Consul 등)와 통합되어 서비스의 동적인 위치를 찾아줍니다.마이크로서비스는 서비스 게이트웨이를 통해 다른 서비스.. 2024. 12. 16. 스프링 클라우드(SPRING CLOUD)의 글로벌 필터(Global Filter) 스프링 클라우드(SPRING CLOUD)의 글로벌 필터(Global Filter)는 Spring Cloud Gateway에서 제공하는 기능으로, 모든 요청에 대해 사전 또는 사후 작업을 수행하는 필터입니다. 이 필터는 애플리케이션 전역적으로 적용되며, 특정 라우트(Route)와 관계없이 동작합니다.1. 글로벌 필터(Global Filter)란?Spring Cloud Gateway의 필터는 크게 GlobalFilter와 RouteFilter로 나뉩니다.GlobalFilter: 모든 요청에 대해 동작.RouteFilter: 특정 라우트(Route)에만 적용.글로벌 필터의 역할모든 HTTP 요청에 대해 공통 작업 수행.요청(Request)을 전처리하거나 응답(Response)을 후처리.로깅, 인증/인가, 헤더.. 2024. 12. 16. UserContextHolder UserContextHolder는 일반적으로 사용자의 컨텍스트(Context)를 애플리케이션의 현재 요청 스레드에 안전하게 저장하고 관리하기 위한 클래스로 사용됩니다. 이는 마이크로서비스 아키텍처(MSA)에서 각 요청마다 고유한 사용자 정보를 유지하는 데 중요한 역할을 합니다. 1. UserContextHolder의 필요성왜 필요한가?요청별 사용자 정보 관리:클라이언트의 각 요청은 고유한 사용자 정보를 포함합니다(예: JWT 토큰, 세션 정보, 권한).마이크로서비스 환경에서는 각 서비스가 분리되어 있어 이러한 정보를 모든 요청에 전달하고 처리해야 합니다.스레드 안전(Thread-Safe) 컨텍스트:요청은 서버에서 처리되는 동안 동일한 스레드에서만 안전하게 사용자 정보를 참조해야 합니다.사용자 정보를 Th.. 2024. 12. 16. MSA에서의 필터(Filter)와 인터셉터(Interceptor) MSA에서의 필터와 인터셉터마이크로서비스 아키텍처(MSA)에서는 각 서비스가 독립적으로 운영되기 때문에 요청과 응답을 처리하는 과정에서 필터(Filter)와 인터셉터(Interceptor)의 역할이 중요합니다. 각각의 기능은 개별 서비스와 게이트웨이(API Gateway) 수준에서 활용될 수 있습니다.1. MSA에서 필터(Filter)필터의 역할API Gateway 필터:API Gateway(예: Spring Cloud Gateway, Zuul 등)에서 요청을 전처리/후처리하는 데 사용됩니다.MSA에서는 API Gateway가 클라이언트와 백엔드 서비스 간의 중재 역할을 하므로, 필터는 공통적으로 적용해야 하는 로직을 처리하는 데 유용합니다.개별 서비스 필터:개별 마이크로서비스에서도 요청이 서블릿(Ser.. 2024. 12. 16. refresh Spring에서 refresh는 실행 중인 애플리케이션이 설정이나 상태를 동적으로 갱신하도록 돕는 메커니즘입니다. 주로 Spring Cloud 환경에서 설정 값 변경, 라우팅 정보 업데이트, Bean 재초기화 등에 사용됩니다.1. refresh의 기본 개념동적 갱신: 애플리케이션이 실행 중인 상태에서 설정 파일이나 라우팅 정보 등의 변경 사항을 즉시 반영할 수 있게 합니다.Spring에서 refresh는 애플리케이션 컨텍스트(Application Context)의 특정 부분을 다시 로드하거나 초기화하여 이를 실현합니다.시스템 재시작 없이도 업데이트 사항을 반영할 수 있으므로 가용성과 유연성을 높이는 데 유용합니다.2. 주요 용도Spring Cloud Config와 연동:외부 Config 서버에서 설정 변.. 2024. 12. 16. Netflix Zuul ( API 게이트웨이 ) Netflix Zuul은 API 게이트웨이 및 프록시 서버 역할을 하는 Netflix OSS(Open Source Software)의 라이브러리입니다. 주로 마이크로서비스 아키텍처에서 클라이언트 요청을 라우팅하고 필터링하기 위해 사용됩니다. Zuul은 Netflix의 다른 도구(Eureka, Ribbon 등)와 통합되어 강력한 API 게이트웨이 솔루션을 제공합니다.Zuul의 주요 역할라우팅 (Routing):클라이언트 요청을 적절한 백엔드 마이크로서비스로 전달.URL 패턴에 따라 경로를 매핑하거나 서비스 등록(Discovery Service)을 통해 동적으로 라우팅.예: /users/** 요청을 사용자 서비스로 전달.로드 밸런싱 (Load Balancing):Netflix Ribbon과 통합하여 여러 서.. 2024. 12. 16. 이전 1 2 3 4 다음