피드로 돌아가기
Dev.toInfrastructure
원문 읽기
Azure Service Bus 기반 비동기 통합으로 DLQ율 0.003% 달성
Plugin + Azure Function + Service Bus: async integration at scale
AI 요약
Context
단일 Plugin에서 다수 하위 시스템을 직접 호출하던 동기식 구조로 인한 연쇄 실패 및 System Jobs 큐 포화 문제 발생. 특정 시스템 장애가 전체 파이프라인의 가용성을 저하시키는 강한 결합도(Strong Coupling)의 한계 노출.
Technical Solution
- Plugin 역할을 메시지 발행으로 최소화하여 단일 실패 지점(SPOF) 제거 및 신뢰성 확보
- Service Bus Topic 및 Subscription 기반의 Pub/Sub 구조를 통해 소비자별 독립적인 처리 및 개별 Dead-letter Queue 관리
- 페이로드 크기를 1KB 미만으로 제한하고 Metadata 중심 설계를 적용하여 비용 최적화 및 전송 효율 증대
- Subscription 레벨의 서버 사이드 필터링을 통해 불필요한 Function 호출을 차단하고 인프라 비용 60% 절감
- Cosmos DB/Redis 기반 Idempotency Store 구축으로 중복 메시지 처리 방지 및 데이터 일관성 보장
- CorrelationId를 전 구간에 전파하여 Application Insights 기반의 엔드투엔드 분산 추적 체계 구현
실천 포인트
1. Plugin/Producer는 메시지 발행 외의 비즈니스 로직을 모두 제거했는가?
2. 중복 메시지 처리를 위한 Idempotency Key와 TTL 설정이 적절한가?
3. 필터링 로직을 애플리케이션 코드가 아닌 메시지 브로커 레벨에서 처리하고 있는가?
4. 전 구간 추적을 위한 통합 CorrelationId 전략이 수립되었는가?
5. 소비자별 처리 시간에 맞춘 Lock Duration 최적화가 이루어졌는가?