피드로 돌아가기
Dev.toInfrastructure
원문 읽기
Azure Service Bus를 통한 분산 시스템 결합도 해소 및 메시지 보장 설계
Azure Service Bus for Event-Driven Systems: A Practical Deep Dive
AI 요약
Context
동기식 HTTP 호출 기반의 서비스 간 강결합으로 인한 Cascading Failure 발생. 트래픽 급증 시 시스템 전체가 중단되는 가용성 저하 및 배포 시 상호 의존성으로 인한 운영 리스크 증가.
Technical Solution
- Producer와 Consumer 간 Temporal Buffer를 도입하여 서비스 간의 시간적/공간적 결합도 제거
- Competing Consumers 패턴의 Queue를 활용한 수평적 처리 확장 구조 설계
- Topic-Subscription 모델과 SQL-like 필터링을 통한 선택적 이벤트 브로드캐스팅 구현
- SessionId 기반의 Exclusive Lock 메커니즘을 적용하여 관련 메시지 그룹의 엄격한 FIFO 순서 보장
- Dead-lettering 및 Duplicate Detection 기능을 통한 메시지 전달 신뢰성 확보
- 서비스 특성에 따라 Service Bus(명령/트랜잭션), Event Grid(반응형 라우팅), Event Hubs(고처리량 스트리밍)를 혼합한 하이브리드 메시징 전략 채택
실천 포인트
- 메시지 손실 불가 및 보장된 처리 필요 시 Service Bus 선택 - 관련 이벤트의 순차 처리 필요 시 SessionId 설정 검토 - 대규모 트래픽의 단순 알림 전파 시 Event Grid로 전환 고려 - 텔레메트리 등 초당 수백만 건의 데이터 스트리밍 시 Event Hubs 검토