-
[번역 서비스] 개선 - 번역 실패 모니터링 아키텍처Work 2025. 1. 8. 23:48
개요
- 번역 실패 모니터링을 위한 아키텍처를 설계한 과정에 대한 문서이다.
구성 방안
1) 번역 실패 모니터링 스케줄러
- 1대의 스케줄러가 게시글을 조회하고 번역 재처리를 수행하는 구조
문제점
- 번역 실패 게시글이 많아질 경우 번역 처리 서버에 부담을 줄 수 있음 (다음 스케줄링 시간 전까지 작업이 완료되지 않을 수 있음)
- 번역 재시도 횟수 기준 번역 재처리를 위한 추가 구조가 필요함
2) 여러 대의 스케줄러 기반 아키텍처
- 여러 대의 스케줄러를 두어 번역 실패 재처리를 나눠서 수행하는 구조
문제점
- 여러 대의 스케줄러가 동일한 DB를 조회하므로 중복 조회하지 않도록 조회 분기 처리가 필수적임
- 여러 대의 스케줄러가 동시에 번역 요청을 하게 되면 번역 서비스에 부담을 줄 수 있음
- 번역 재시도 횟수 기준 번역 재처리를 위한 추가 구조가 필요함
3) kafka 기반 아키텍처 --> 최종적으로 선택한 구조
- 사내 공용 메시지 큐인 Kafka를 사용한 Kafka 기반 아키텍처 구조
- 스케줄러 1대가 번역 실패 게시글을 조회한 후 번역 재처리 메시지를 카프카에 발행하고, 컨슈머가 메시지를 컨슘해 번역 재처리 수행
선택 이유
- 번역 실패 게시글 조회와 번역 재처리 작업을 분리하여 번역 처리 서버에서 처리량 제어가 가능함
- Kafka를 사용해 번역 재시도 횟수 기준 번역 재처리 구현 가능
'Work' 카테고리의 다른 글
[번역 서비스] 로직 구현 시 고민한 부분 (0) 2025.01.30 [번역 서비스] 적용 - Delayed Retry Topic (0) 2025.01.28 [번역 서비스] 개선 - 번역 실패 모니터링 및 재처리 (0) 2025.01.09 [번역 서비스] 번역 시스템 설계 (0) 2024.12.29