분류 전체보기(264)
-
Reactor 제대로 이해하기, Marble Diagram
본 포스팅은 Project Reactor를 Marble Diagram을 읽는 방법과 함께 쉽게 이해하는 것이 목표입니다. 시리즈가 시작됐습니다 🔥 프로젝트 리액터를 파볼 예정입니다. Reactor는 Spring의 WebFlux가 채택한 Reactive Library입니다. 즉, WebFlux의 기반이자 기본 구성 요소이 됩니다. | Reactor Series | - Reactive Programming, 제대로 이해하기 👉🏻 Reactor 제대로 이해하기, Marble Diagram - Reactor, 제대로 이해하기 - Flux Create Reactor는 JVM 환경에서 Non-blocking의 Reactive Programming을 전적으로 지원하며, "Backpressure"을 관리하면서 데이터의..
2022.11.30 -
Reactor, 제대로 사용하기 - Error Handling
Project Reactor의 Reactor API 사용 중 발생하는 오류를 처리하기 위한 메소드를 이해하고 사용하는 것이 해당 포스팅의 목표입니다. onErrorXxx onErrorXxx 형태의 메소드는 Reactor API 처리 중 오류가 발생하면 일어나는 onError Signal을 대상으로 처리합니다. 다룰 메소드를 훑어보면 아래와 같습니다. ✔ onErrorComplete(): : onError Signal을 onComplete Signal로 변경 ✔ onErrorContinue(BiConsumer) : 해당 Element 스킵 후 다음 Element로 로직 계속 진행. Consumer에서 적절한 처리 지정 ✔ onErrorMap() : Exception을 다른 Exception으로 타입 전환 ..
2022.11.27 -
Rate Limiter, 제대로 이해하기
Rate limiter의 역할과 강단점을 살펴보고, 구현 알고리즘 5가지를 이해하는 것이 해당 포스팅의 목표입니다. 본 포스팅의 모든 그림은 필자가 직접 그린 것으로 무단 사용을 금하며, 사용 시 출처를 반드시 남겨주시길 바랍니다. Rate Limiting Rate Limiting이란 특정 시간 내에 할 수 있는 API 호출 수를 의미합니다. 사용자의 API 호출 수가 Rate Limit값을 초과하면 API 호출이 제한되며 요청이 실패하게 됩니다. 즉, 단어 그대로 API의 속도를 제한합니다. Rate Limiter를 적용하면 고가용성과 안정성을 보장할 수 있습니다. 무차별적으로 인입되는 요청을 받는 서버에서의 불안정성을 생각해보면 RateLimiter의 이 특징을 금방 납득할 수 있습니다. Why us..
2022.11.20 -
Reactive Programming, 제대로 이해하기
Spring의 WebFlux에 대한 개념을 쉽고 정확하게 이해하는 것을 목표로 합니다. | Reactor Series | 👉🏻 Reactive Programming, 제대로 이해하기 - Reactor 제대로 이해하기, Marble Diagram - Reactor, 제대로 이해하기 - Flux Create Background 많은 서비스를 한 앱에 구현하는 monolithic 구조는 더 이상 사용하지 않습니다. 빠른 속도를 요구하는 시대에서 monolithic 구조는 문제가 점점 도태되었습니다. 대신 작게 분산된 컴포넌트를 구성하여 연결하는 microservice 구조(MSA)와 이를 서비스하는 클라우드 기반의 클러스터를 선호하게 되었습니다. Microservice 구조는 한 앱을 작은 컴포넌트로 분산시킨..
2022.11.16 -
Shenyu API Gateway, 어렵지 않게 시작하기 2
이전 포스팅에 이어 해당 포스팅에서는 ShenYu 초기 설정을 수정해보겠습니다. 기본 옵션인 H2 데이터베이스를 MySQL 로 변경하는 작업과 Port를 변경하는 작업, 그리고 만약 binary 파일을 다운받고 실행시켰을 때 java 명령을 못찾는 경우를 위해 경로를 지정하는 방법까지 알아보겠습니다. Using MySQL Shenyu API Gateway에 MySQL을 적용하기 위해서는 Admin에 몇 가지 설정이 필요합니다. 순서는 아래와 같습니다. 1. Download MySQL Connector : Library Package 다운로드 2. conf/application.yml 설정 변경 3. conf/application-mysql.yml 설정 변경: MySQL 연결 정보 입력 하나씩 살펴보도록 ..
2022.10.24 -
Shenyu API Gateway, 어렵지 않게 시작하기 1
이전 포스팅 "Shenyu API Gateway, 어렵지 않게 이해하기" 에서는 SheunYu 에 대한 전반적인 설명을 했는데요. 해당 포스팅에서는 SheunYu를 사용하는 법에 대해 다룹니다. 코드는 Github에서 확인할 수 있습니다. Launch Shenyu Binary Packages 🔗 Ref. Shenyu API Gateway를 사용하기 위해서는 아래와 같은 두 개의 모듈이 실행되어야 합니다. 1. Shenyu Admin Setting 2. Shenyu Bootstrap Setting Admin, Bootstrap 각각 순서대로 실행하면 됩니다. 해당 포스팅에서는 Binary를 받아서 실행시키는 방식을 다루고, 다음 포스팅에서 MySQL을 적용하고 실행 포트를 변경하는 설정으로 실행시키는 과정..
2022.10.23