전체 글84 [Resilience4j Retry] 리트라이 활용하기 Resilience4jCircuitBreaker, Bulkhead, Retry, TimeLimiter 등 서비스 가용성을 높이기 위한 다양한 기능을 제공하는 라이브러리Resilience4j Retryhttps://resilience4j.readme.io/docs/retryResilience4j의 Retry를 활용하면 예외에 따라 재시도를 수행할 수 있다.해당 라이브러리에서 제공하는 재시도 기능을 활용하고, 재시도 interval 값을 특정 예외에서는 동적으로 조정하기 위해 intervalBiFunction을 활용하여 커스터마이징 해보았다.도입고민우선은 단순하게 접근하여 외부 api를 호출했을 때, 400대 에러는 재시도를 수행하지 않는 방향으로 결정했으나, Too Many Requests(429) 예외만.. 2025. 10. 22. [ElasticSearch]기초 알아가기 03. 분석기엘라스틱 서치는 역인덱싱 기술을 통해 전문 검색을 지원한다.이 때 문자열을 나누는 기준이 아주 중요하다.전문 검색: 장문의 문자열에서 부분 검색을 수행하는 것역인덱싱: 장문의 문자열을 분석해 작은 단위로 쪼개어 인덱싱하는 기술엘라스틱 서치는 이를 지원하기 위해 캐릭터 필터, 토크나이저 tokenizer, 토큰 필터로 구성되어 있는 분석기 모듈을 갖고 있다.분석기에 토크나이저는 반드시 하나가 포함되어야 하고, 캐릭터 필터와 토큰 필터는 옵셥이므로 없어도 되고 여러 개를 함께 사용할 수도 있다.엘라스틱 서치에서 제공하는 분석기를 사용할 수 있고, 필터와 토크나이저 조합을 구성하여 분석기를 커스텀해서 사용할 수도 있다.토큰과 용어토큰 token: 토크나이저를 이용해 필터링된 문자열을 자르게 되는데, 이 .. 2025. 6. 23. [Zookeeper] 간단히 알아보기 ZookeeperZookeeper는 분산 애플리케이션을 위한 코디네이션 시스템입니다.안정적인 서비스를 제공할 수 있도록 분산되어 있는 각 애플리케이션의 정보를 중앙 집중식으로 구성 관리, 그룹 네이밍, 동기화 등의 서비스를 제공합니다.분산 시스템 간에 정보 공유, 상태 확인, 잠금을 처리하는 방법에 대한 해결책이 필요핱데 여기서 주키퍼가 해결책들을 일부 제시해주고 있습니다.분산 시스템 코디네이션 시스템에 장애가 발생하면 전체 시스템에 장애가 발생하게 됩니다. 따라서 이중화 등 고가용성을 위한 시스템을 갖추고 있습니다.기능은 단순한 편으로 Znode 라는 Key-value로 이루어진 데이터 저장 객체(인메모리)를 제공하고, 여기에 데이터를 넣고 빼는 기능만을 제공합니다.아키텍쳐고가용성을 위해 zookeep.. 2025. 6. 19. [Elasticsearch]기초 알아가기 02. 매핑스키마: 관계형 데이터베이스에서 테이블을 구성하는 구성요소 간의 논리적인 관계와 정의를 의미엘라스틱서치에서 스키마 역할을 수행하는 것이 매핑이다.JSON 형태의 데이터를 루씬이 이해할 수 있도록 바꿔주는 작업이다.전문 검색과 대용량 데이터를 빠르게 실시간 검색할 수 있도록 돕는다.엘라스틱 서치가 자동으로 처리하는 다이내믹 매핑과 직접 사용자가 설정하는 명시적 매핑 방식으로 구분할 수 있다.다이내믹 매핑엘라스틱서치는 유연한 활용을 위해 인덱스 생성 시 매핑 정의를 강제하지 않는다.매핑을 따로 설정하지 않는 경우 다이내믹 매핑이 수행된다.JSON 도큐먼트의 데이터 타입에 맞춰 아래와 같이 자동으로 인덱스 매핑을 수행한다.다이내믹 매핑 사용시 인덱스 규모가 커지는 경우 효율이 떨어질 수 있다.예를 들어 숫.. 2025. 6. 18. 이전 1 2 3 4 ··· 21 다음