개발 환경Spring Boot : 3.3.0Spring Cloud : 2023.0.2 (Spring Boot 3.X 버전과 호환)spring-boot-starter-data-redis-reactive : 3.3.0Redis : 7.4.1 일을 하던 중간에 서비스 과부하 방지를 위해 사용자별 API 요청에 대한 속도 조절 및 요청 제한 기능을 요청받아 구현하는 방식을 알아보던 중 API Rate Limiting 또는 처리율 제한 장치라고 불리는 것을 알게 되었다. 그렇게 일을 하면서 구현한 RateLimit는 bucket4j 라이브러리를 사용하여 OncePerRequestFilter를 상속받아 구현하였고 개인적으로 진행하고 있는 프로젝트(MSA)에도 적용하기 위해 알아보던 중 Spring Cloud에서는 ..
Spring Cloud Gateway(SCG)란?Spring Cloud Gateway는 Spring 기반의 API Gateway이며 클라이언트와 마이크로서비스 사이의 중계기 역할을 한다. API 게이트웨이는 마이크로서비스의 앞에서 클라이언트로부터 모든 요청을 일괄적으로 전달받아 처리하기 때문에 엔드포인트를 단일화할 수 있다는 장점이 있다. 위 이미지를 보면 마이크서비스가 현재는 3개가 있지만 새로운 마이크로서비스가 추가되거나 어떤 마이크로서비스에 주소가 변경되었다고 하면 클라이언트 애플리케이션 측에서도 수정하고 배포하는 과정이 추가적으로 필요하다.이렇다 보니 단일 진입점 형태의 개발이 필요해서 API Gateway를 사용하게 되었다고 한다. API 게이트웨이를 사용하면 각각의 마이크로서비스로 요청..
Cloud Native Architecture란기존의 온프레미스 인프라가 아닌 클라우드에 존재하도록 설계된 서비스의 설계 방식이다. Cloud Native Architecture 특징확장 가능한 아키텍처시스템의 수평적 확장에 유연확장된 서버로 시스템 부하분산, 가용성 보장시스템 또는 서비스 애플리케이션 단위 패키지(컨테이너 기반 패키지)모니터링- scale up: 하드웨어 사양을 업그레이드하여 시스템을 확장- scale out: 여러 대의 서버를 추가하여 시스템을 확장(각 서버에 걸리는 부하를 균등하게 해주는 로드밸런싱이 필수적) 탄력적 아키텍처서비스 생성-통합-배포, 비즈니스 환경 변화에 대응 시간 단축분할된 서비스 구조무상태 통신 프로토콜서비스의 추가와 삭제 자동으로 감지변경된 서비스 요청에 따라 사..