Back off 전략이란? Spring-Retry, 실패처리에 대한 과정
·
카테고리 없음
Backoff 전략과 Spring Retry로 안정적인 재시도 구현하기 시스템을 개발하다 보면 외부 API 호출, 분산락 획득, 네트워크 요청과 같이 일시적인 실패가 발생할 수 있는 작업을 마주하게 됩니다. 이런 실패 상황에서 가장 많이 쓰이는 전략이 바로 Backoff입니다. 이번 포스팅에서는 Backoff 전략의 개념과 종류, 그리고 이를 손쉽게 구현할 수 있는 Spring Retry 라이브러리 활용법까지 정리해봅니다.  Backoff란? Backoff는 실패한 작업을 즉시 다시 시도하지 않고 일정 시간 대기 후 재시도하는 전략입니다.지속적인 충돌과 서버 과부하를 방지하기 위해 사용되며, 대표적으로 API 재시도, 락 획득 충돌 해결 등에 활용됩니다. Backoff의 종류 1. Fixed Backof..
[MSA - Spring Cloud] Spring Cloud Gateway 개발하기
·
Spring/Spring Cloud
이전에는 Eureka 서버가 직접 서비스에 주소를 알려주고 통신하는 방법을 사용했다. 이 과정에서 gateway를 추가해서 들어오는 요청의 전후처리와 인증/인가를 수행할 수 있도록 설정해 보려고 한다. API Gateway의 기능라우팅인증/인가로드 밸런싱모니터링 및 로깅요청 및 응답 변환 Spring Cloud Gateway 란?SpringCloud Neflix 패키지의 일부로 msa 환경에서 널리 사용된다. 클라우드의 요청을 적절한 서비스로 라우팅 시켜주고, 다양한 필터링 기능을 제공한다.Gateway 또한 EurekaClient로 취급하며 Server와 통신한다.내부에는 Globalfilter, GatewayFilter라는 추상체가 존재하고 해당 추상체를 통해 filterChain메서드를 실행시킬 수..
[Logging] 로그 출력을 효율적으로 생성 및 추적하기 7편 - Spring AOP
·
Spring/Logging
Spring AOP수 많은 문제점을 거쳐서 드디어 결론에 도달했다... 결국에는 Spring에서 제공하는 AOP의 동작방식과 강력한 지원 기능에 대해 설명하려고 달려왔던것 같았다 ㅎㅎ처음 다뤘던 내용과 같이 애플리케이션의 비즈니스 로직은 핵심 기능과 부가 기능으로 분리할 수 있다.핵심 기능은 도메인의 객체가 수행하는 고유의 기능이다.부가 기능은 핵심 기능을 보조하기위해 제공하는 기능이다. 예를 들어서 로그 추적 로직, 트랜잭션 기능 등이 이에 해당된다.핵심 기능은 각 객체의 고유 기능이기에 중복적인 수행이 아니지만, 부가 기능은 동일한 기능을 수행하기 때문에 각 도메인마다 중복되는 기능이 수행된다.객체지향적인 코드를 짜기 위해서는 중복된 내용은 하나의 추상화를 통해 공통적으로 사용할 수 있는 하나의 객체..
[Spring Batch 5.x] 배치를 사용하기 위한 환경 설정
·
Spring/Batch
배치란?배치는 일정 시간 동안 대량의 데이터를 한 번에 처리하는 방식이다. 대량 데이터를 복잡한 쿼리를 통해 이동시키는 도중 프로그램이 멈추면 처음부터 다시 시작해야 하는 문제가 생길 수 있다. 이를 방지하기 위해 작업 중간 지점을 기록하는 메커니즘을 활용한다. 이렇게 함으로써 중단된 지점에서 다시 작업을 이어갈 수 있다.배치는 일반적으로 반복적이고 스케줄 기반으로 실행된다. 예를 들어, 매일 새벽 특정 데이터를 처리하거나 정기적으로 보고서를 생성하는 작업이 이에 해당한다.현재 Batch는 5.x 버전이 나오면서 이전에 사용했던 방식과 많은 변화가 있어 문서를 학습하고 실제로 사용해보지 않으면 쓰기 힘들다고 느꼈다. 계속 박치기?를 하면서 성공한 나의 환경 설정을 공유해보려 한다.Spring Batch의..
[Spring/Redis] Redis 문서 정리(Search With Redis)
·
Redis/Redis 개념
이번 문서 정리는 아래 링크 내용입니다!이번에도 내용 가장 아래에 간단히 내용을 요약해 올려두겠습니다:)https://redis.io/learn/develop/java/redis-and-spring-course/lesson_7Redis를 사용한 검색저자: Brian Sam-Bodden, Redis 개발자 옹호자목적Redis의 내장된 검색 및 쿼리 엔진을 활용하여 SQL과 NoSQL 시스템 간의 쿼리 간극을 메우는 방법을 학습합니다. 주로 두 가지 일상적인 사용 사례에 중점을 둡니다: 풀 텍스트 검색과 자동 완성.학습 내용Redis를 사용하여 검색 인덱스를 생성하는 방법Spring Boot 애플리케이션에서 Redis를 사용하여 검색 기능을 구현하는 방법Redis 제안 기능을 사용하여 자동 완성을 구현하는 ..
[Spring/Redis] Redis 문서 정리(User Roles, Secondary Indexes)
·
Redis/Redis 개념
이번 문서 링크는 아래와 같습니다!가장 아래로 내려보시면 문서에 대한 요약을 함께 적어놨습니다 참고해주세요 :)https://redis.io/learn/develop/java/redis-and-spring-course/lesson_4 User Roles & Secondary IndexesAs we learned in the previous lesson, the @Indexed annotation can be used to create a secondary index. Secondary indexes enable lookup operations based on native Redis structures. The index is maintained on every save/update of an indexe..