Spring Microservice/API Gateway(7)
-
Spring Cloud Gateway Reactive 라이프사이클
🚀 Spring Cloud Gateway Reactive 라이프사이클— Predicate → Filter → Netty, 논블로킹 파이프라인의 정수스프링 클라우드 게이트웨이(Spring Cloud Gateway, SCG)에서 요청이 들어와 처리되고 다시 나가는 전 과정은Reactive(비동기 · 논블로킹) 아키텍처의 교과서라고 할 수 있습니다.이 쳅터에서는 SCG가👉 Predicate로 길을 찾고,👉 Filter로 요청·응답을 가공하며,👉 Netty로 실제 네트워크 통신을 수행하는전체 라이프사이클을 정리해 보겠습니다. ✍️🧭 1. 전체 흐름 한눈에 보기 (High-Level Flow)SCG로 들어온 하나의 HTTP 요청은 아래와 같은 비동기 파이프라인을 따라 이동합니다.Client ↓Netty..
2026.01.07 -
Filter
🚦 SCG FilterSCG의 필터는 한 줄로 요약하면:ServerWebExchange(요청+응답 컨텍스트)를 받아서, 다음 체인으로 넘기기 전/후에 가공하는 함수형 미들웨어 입니다. 🧩그리고 WebFlux이므로, “전/후처리”는 동기 try/finally가 아니라 Mono 체인으로 구성됩니다.1) 🧠 필터 체인 구조: “양파껍질” 모델SCG 요청 흐름은 대략 이렇게 이해하시면 정확합니다.요청이 Gateway에 들어옴Route 매칭(Predicate)필터 체인 구성GlobalFilter들 + 해당 Route의 GatewayFilter들필터 체인 실행Pre는 순서대로 “들어가며” 실행Post는 역순으로 “나오며” 실행실제 라우팅/프록시(Netty routing filter 등)응답을 다시 필터 체인으..
2026.01.07 -
Route vs Microservice
🚦 Spring Cloud Gateway에서 Route와 Microservice의 관계― “Route는 서비스가 아니라, 서비스로 가는 출입 명부다”Spring Cloud Gateway(SCG)를 학습하다 보면 거의 반드시 마주치는 질문이 있습니다.❓ “Route 하나가 곧 마이크로서비스 하나 아닌가요?”이 질문은 아주 정확하고, 동시에 아키텍처의 본질을 찌르는 질문입니다.결론부터 말씀드리면 다음과 같이 정리하는 것이 가장 정확합니다.✅ Route는 마이크로서비스 그 자체는 아니다.✅ 하지만 마이크로서비스로 들어가는 ‘논리적인 이정표’이자 ‘출입 명부’다.이 쳅터에서는 Route와 Microservice의 관계를 구조적으로 정리해 보겠습니다. 🧠✨1️⃣ Route vs Microservice — 개념..
2026.01.07 -
Predicate
🚦 Spring Cloud Gateway Predicate— 요청을 Route로 보낼지 말지 결정하는 핵심 로직의 모든 것MSA 환경에서 Spring Cloud Gateway(SCG) 는 단순한 라우터가 아닙니다.SCG는 “이 요청을 어디로, 언제, 어떤 조건에서 보낼 것인가” 를 결정하는 정책 엔진에 가깝습니다.그 중심에 있는 개념이 바로 Predicate(조건자) 입니다. 🧩✅ Predicate란 무엇인가?Predicate는 요청이 특정 Route에 매핑될 수 있는지를 판단하는👉 Boolean 판별식(true / false) 입니다.SCG의 Predicate는 Java 8의 함수형 인터페이스인java.util.function.Predicate 를 기반으로 설계되었으며,📥 입력: ServerWe..
2026.01.07 -
Load Balancer 스키마
🚦 Spring Cloud Gateway에서 lb:// 스키마 완전 정복— Service Discovery와 Client-side Load Balancing의 연결 고리MSA 환경에서 API Gateway는 단순한 프록시가 아닙니다.요청을 어디로, 어떤 기준으로, 어떻게 보낼지를 결정하는 지능형 라우터입니다.그 중심에 있는 것이 바로 lb:// 스키마입니다.이 챕터에서는 Spring Cloud Gateway(SCG)에서lb://가 어떻게 동작하는지, 내부적으로 어떤 컴포넌트들이 관여하는지를 분석해보겠습니다 🔍🧠 1. lb:// 스키마의 본질 — “주소가 아닌 이름으로 라우팅하라”일반적인 라우팅은 다음과 같습니다.http://10.0.1.5:8081하지만 lb://는 완전히 다릅니다.lb://USER..
2026.01.07 -
Route
🚪 Spring Cloud Gateway Route— 요청의 생명주기를 지배하는 ‘워크플로우 정의서’ 🧭스프링 클라우드 게이트웨이(SCG)에서 Route(라우트)는 단순한 URL 매핑 규칙이 아닙니다.👉 요청이 언제 들어오고, 어떤 조건에서 선택되며, 어떤 가공을 거쳐, 어디로 흘러가는지를 정의하는하나의 “요청 처리 워크플로우 명세서”라고 이해하셔야 합니다.이번 글에서는 Route가 어떻게 설계되고, 내부에서 어떤 메커니즘으로 동작하는지 깊이 있게 분석해 보겠습니다. 🔍🧩 1. Route란 무엇인가? — 논리적 구조부터 이해하기Route는 다음 질문에 대한 완전한 답변 세트입니다.❓ 이 요청은• 어디로(URI)• 어떤 조건일 때(Predicate)• 무엇을 가공해서(Filter)보내야 하는가?이..
2026.01.07