[MigOps] 메세지 처리
메세지 처리
Loosely Coupled System
한 시스템의 상태가 다른 시스템에 영향을 주지 않도록 하는 것
- 시스템 직접 통신을 분리
Message Queueing
- 비동기 처리
- Point to point
Amazon SQS
마이크로서비스 , 분산 시스템 및 서버리스 앱을 위한 완전관리형 메시지 Queue
- 높은 신뢰성
- 확장성
- 높은 처리량
- 저비용(거의 무제한)
- 느슨한 FIFO: 저장된 순서로 메시지를 꺼낼 수 없음
- 최소 1회 전달 보장 (2회 이상 전달 되기도 함)
Visibility timeout 이용
한 consumer가 큐에서 메시지를 검색한 후 다른 consumer에서 메시지에 액세스 할 수 없는 시간
- 수신된 메시지 잠금 기간 설정
- 여러 consumer가 동일한 메시지 처리하는 것을 방지
- consumer 및 네트워크 장애 -> 다른 consumer에서 다시 처리
Batch
최대 10개 메시지를 한번에 요청, Batch 송/수신 가능
-
Long Polling
여러 큐를 멀티스레드로 처리
-
Short Polling
여러 큐를 단일 스레드로 처리
지연큐
큐에 보내진 메시지를 일정 시간 동안 보이지 않게 하는 기능
Dead Letter Queue
제대로 처리하지 못한 메시지를 Dead Letter Queue에 보관, 원인분석, 후처리에 활용
Amazon SNS
Serverless 앱을 위한 Pub/Sub 메시징 및 모바일 알림 서비스
- 높은 신뢰성
- 유연성
- 높은 처리량
- 저비용
- 메시지 필터링을 consumer에서 처리
Push
consumer에서 pull 또는 polling 할 필요 :x:
Amazon MQ
클라우드에서 메시지 브로커를 쉽게 설정하고 운영할 수 있게 해주는 Apache ActiveMQ용 관리형 메시지 브로커
Queue, Topic 지원, 순서대로 메시지 전달(FIFO)
- 높은 신뢰성
- 업계 표준 호환
- Active MQ 기반
- 저비용
Amazon Kinesis Data Streams
대규모 데이터의 실시간 처리를 위한 스트리밍 데이터 수집 서비스
- Partition key 값을 기준으로 입력 shard 결정
- shard 내 순서 보장
SNS
- Topics: 어플리케이션 엔드포인트들이 구독 단위로 그루핑 되어있는 것