Message Queue
-
이코에코(Eco²) Clean Architecture #4 Auth Persistence Offloading이코에코(Eco²)/Clean Architecture Migration 2025. 12. 31. 17:54
개요인증 서비스(auth-api)에서 직접 수행하던 영속성 작업을 별도의 워커(auth-worker, auth-relay)로 분리한 과정을 기록합니다. 느슨한 결합(Loose Coupling), 확장성(Scalability), 유지보수성(Maintainability)을 우선 가치로 삼았습니다.배경기존 아키텍처의 문제점기존 auth-api는 다음과 같은 영속성 작업을 동기적으로 수행했습니다:┌─────────────────────────────────────────────────────────────┐│ auth-api ││ ..
-
KEDA 트러블슈팅: RabbitMQ 기반 이벤트 드리븐 오토스케일링이코에코(Eco²)/Troubleshooting 2025. 12. 26. 19:43
본 문서는 Kubernetes 환경에서 KEDA(Kubernetes Event-driven Autoscaling)를 활용하여 RabbitMQ 큐 길이 기반 Worker Pod 오토스케일링을 구현하는 과정에서 발생한 이슈와 해결 방법을 기술합니다.환경 정보구성 요소버전/사양Kubernetesv1.28.4 (kubeadm)KEDAv2.16.0RabbitMQv3.13.x (RabbitMQ Operator)ArgoCDv2.13.xCNICalico (NetworkPolicy 적용)목표CPU 기반 HPA의 한계를 극복하고 메시지 큐 길이 기반 오토스케일링 구현scan-worker의 동적 스케일링으로 부하 대응력 향상k6 부하 테스트 시 성공률 개선1. 배경: CPU 기반 HPA의 한계1.1 기존 구조scan-wor..
-
AMQP와 RabbitMQ: 메시지 브로커의 표준이코에코(Eco²)/Foundations 2025. 12. 25. 22:00
원문: AMQP 0-9-1 Specification (2006)RabbitMQ: RabbitMQ Documentation들어가며AMQP(Advanced Message Queuing Protocol)는 메시지 지향 미들웨어의 개방형 표준 프로토콜이다.2003년 JPMorgan Chase에서 시작되어 2006년에 AMQP 0-9-1로 표준화되었다.RabbitMQ는 AMQP 0-9-1의 가장 널리 사용되는 구현체로, Erlang으로 작성되어 높은 안정성과 분산 처리 능력을 제공한다.Kafka가 로그라면, RabbitMQ는 우체국에 가깝다.Kafka: 메시지를 로그처럼 영구 저장, Consumer가 원하는 위치에서 읽음RabbitMQ: 메시지를 큐에 저장, Consumer에게 전달 후 삭제AMQP 탄생 배경금융..
-
이코에코(Eco²) Message Queue #6: 캐릭터 보상 판정과 DB 레이어 분리, Eventual Consistency 적용 (1)이코에코(Eco²)/Message Queue 2025. 12. 23. 07:12
본 문서는 보상(Reward) 판정과 DB 저장 로직의 분리, 병렬 저장을 통한 gRPC 제거,현재 상황에서 택한 Eventual Consistency 적용 방향에 대해 기록한다.목표클라이언트 응답 속도 개선 (판정 즉시 응답)DB 저장 실패가 응답에 영향 주지 않도록 격리두 DB(character, my) 저장을 병렬로 처리반영안클라이언트 응답판정 + DB 저장 완료 후판정 즉시DB 저장순차 (character → my gRPC)병렬 (Fire & Forget)my 도메인 연동gRPC 호출직접 DB INSERT실패 시 영향전체 실패각자 독립 재시도1. 문제 정의1.1 기존 구조의 문제점scan_reward_task (Chain 마지막 단계) │ ├── 1. 캐릭터 매칭 (판정) ├── ..
-
이코에코(Eco²) Message Queue #1: MQ 적용 가능 영역 도출이코에코(Eco²)/Message Queue 2025. 12. 21. 22:52
개요RabbitMQ + Celery 아키텍처 설계에서는 Chat/Scan API의 AI 파이프라인을 비동기로 전환하는 계획을 수립했다. 그러나 MQ 도입의 효과는 AI 파이프라인에만 국한되지 않는다.본 글에서는 이코에코 백엔드 전체를 분석하여 RabbitMQ 적용으로 개선할 수 있는 영역을 도출하고, 우선순위를 정한다.분석 대상도메인역할현재 부하 특성chat폐기물 분류 챗봇GPT API 호출 (10~30초)scan이미지 스캔 + 리워드GPT API + gRPC 호출character캐릭터 발급 + 동기화DB + gRPC 호출image이미지 업로드S3 Presigned URLlocation위치 검색PostGIS 쿼리my사용자 프로필CRUDauth인증/인가Redis 블랙리스트ext-authzJWT 검증Redi..