분류 전체보기
-
overviewGateway Handler Mapping SpringMVC의 동작 구성과 비슷하다. DispatcherServlet과 유사하게 Front Controller를 하나두어 진입점을 하나로 통합하였다. client 호출에서 Gateway Web Handler에 도달하기 전까지의 호출 순서를 보면 아래와 같다 Client ->HttpWebHandlerAdapter.handle -> (predicate, filter에서 사용하는 ServerWebExchange 생성 및 전달 )DispatcherHandler.handle -> (DispatcherServlet 유사)(handlerMapping을 찾아 handlerAdapter에서 수행)RoutePredicateHandlerMapping.getH..
[SpringCloudGateway] 구성 요소 및 동작 내용overviewGateway Handler Mapping SpringMVC의 동작 구성과 비슷하다. DispatcherServlet과 유사하게 Front Controller를 하나두어 진입점을 하나로 통합하였다. client 호출에서 Gateway Web Handler에 도달하기 전까지의 호출 순서를 보면 아래와 같다 Client ->HttpWebHandlerAdapter.handle -> (predicate, filter에서 사용하는 ServerWebExchange 생성 및 전달 )DispatcherHandler.handle -> (DispatcherServlet 유사)(handlerMapping을 찾아 handlerAdapter에서 수행)RoutePredicateHandlerMapping.getH..
2025.01.22 -
SpringCloudGateway는 스프링으로 만들어진 API-Gateway이다.그럼 API-Gateway가 무엇인지 먼저 알아보자. API-Gateway 란마이크로 서비스 아키텍처 형태로 구축되면서 다양한 서비스들의 엔드포인트를 관리하는 데 있어 어려움이 생기고, 또한 각 서비스마다 공통적으로 들어가는 기능(인증/인가, 로깅, 모니터링 등)들을 중복으로 개발해야 한다는 문제점이 발생한다.이러한 문제점을 해결하기 위해 API-Gateway를 도입할 수 있다. 즉, 모든 서비스로의 요청을 처리하는 단일 진입점이라고 할 수 있다. Gateway 패턴Gateway는 서버들에서 필요한 공통 로직을 통합하여 처리모든 서비스에서 필요한 유저 정보, 보안 정책 등을 Gateway에서 처리하고 이를 업스트림 서버..
[SpringCloudGateway] SpringCloudGateway란 (정의, 사용이유)SpringCloudGateway는 스프링으로 만들어진 API-Gateway이다.그럼 API-Gateway가 무엇인지 먼저 알아보자. API-Gateway 란마이크로 서비스 아키텍처 형태로 구축되면서 다양한 서비스들의 엔드포인트를 관리하는 데 있어 어려움이 생기고, 또한 각 서비스마다 공통적으로 들어가는 기능(인증/인가, 로깅, 모니터링 등)들을 중복으로 개발해야 한다는 문제점이 발생한다.이러한 문제점을 해결하기 위해 API-Gateway를 도입할 수 있다. 즉, 모든 서비스로의 요청을 처리하는 단일 진입점이라고 할 수 있다. Gateway 패턴Gateway는 서버들에서 필요한 공통 로직을 통합하여 처리모든 서비스에서 필요한 유저 정보, 보안 정책 등을 Gateway에서 처리하고 이를 업스트림 서버..
2025.01.19 -
보통의 경우에는 애플리케이션에서 하나의 DB에만 조회를 한다. 하지만 DB 부하를 분산하기 위해서 조회는 Slave에서만 한다던가, 샤딩된 DB를 사용하기도 한다. 이러한 경우에 어떻게 MultiDataSource를 조회할 수 있도록 Spring에서 설정할 수 있는지 알아보자. DataSource 정보 application.yml을 이용하여 DB url 및 user 정보 관리multi-datasource: kakao: url: jdbc:h2:tcp://localhost/~/testcase username: sa passwd: naver: url: jdbc:h2:tcp://localhost/~/test username: sa passwd: 위의 설정 정보를 매핑할 Da..
[Spring] RoutingDataSource 이용 DB 요청 분산(MasterSlave, Sharding..)보통의 경우에는 애플리케이션에서 하나의 DB에만 조회를 한다. 하지만 DB 부하를 분산하기 위해서 조회는 Slave에서만 한다던가, 샤딩된 DB를 사용하기도 한다. 이러한 경우에 어떻게 MultiDataSource를 조회할 수 있도록 Spring에서 설정할 수 있는지 알아보자. DataSource 정보 application.yml을 이용하여 DB url 및 user 정보 관리multi-datasource: kakao: url: jdbc:h2:tcp://localhost/~/testcase username: sa passwd: naver: url: jdbc:h2:tcp://localhost/~/test username: sa passwd: 위의 설정 정보를 매핑할 Da..
2025.01.16 -
MySQL 서버는 사람의 머리 역할을 담당하는 MySQL 엔진과, 손발 역할을 담당하는 스토리지 엔진으로 구분할 수 있다 MySQL 전체 구조 MySQL 엔진클라이언트로부터의 접속 및 쿼리 요청을 처리하는 커넥션 핸들러와 SQL 파서 및 전처리기, 쿼리의 최적화된 실행을 위한 옵티마이저가 중심을 이룬다.-> MySQL 엔진은 요청된 SQL 문장을 분석하거나 최적화하는 등 DBMS의 두뇌에 해당하는 처리를 수행 스토리지 엔진데이터를 디스크 스토리지에 저장하거나 디스크 스토리지로부터 데이터를 읽어오는 부분은 스토리지 엔진이 전담한다. MySQL 엔진MySQL Threading 구조 MySQL 서버는 프로세스 기반이 아니라 스레드 기반으로 작동 Foreground thread주로 각 클라이언트 사용자가 ..
[MySQL] 4장 아키텍처MySQL 서버는 사람의 머리 역할을 담당하는 MySQL 엔진과, 손발 역할을 담당하는 스토리지 엔진으로 구분할 수 있다 MySQL 전체 구조 MySQL 엔진클라이언트로부터의 접속 및 쿼리 요청을 처리하는 커넥션 핸들러와 SQL 파서 및 전처리기, 쿼리의 최적화된 실행을 위한 옵티마이저가 중심을 이룬다.-> MySQL 엔진은 요청된 SQL 문장을 분석하거나 최적화하는 등 DBMS의 두뇌에 해당하는 처리를 수행 스토리지 엔진데이터를 디스크 스토리지에 저장하거나 디스크 스토리지로부터 데이터를 읽어오는 부분은 스토리지 엔진이 전담한다. MySQL 엔진MySQL Threading 구조 MySQL 서버는 프로세스 기반이 아니라 스레드 기반으로 작동 Foreground thread주로 각 클라이언트 사용자가 ..
2025.01.12