MSA 환경에서 SNS 메시지 재발행을 위한 스프링 배치 및 스케쥴러 구현
·
MSA
유실된 SNS메시지를 스케쥴러와 스프링 배치로 처리하는 방법을 설명한다. 우리는 MSA프로젝트에서 Transactional Outbox pattern을 사용해서 스프링 이벤트를 발행해서 SNS메시지 발행 + 발행여부를 본인 DB에 저장하는 것을 이벤트 리스너를 통해 동시에 진행하도록 설계를 완료했다. 이제 우리는 스프링 이벤트가 발행되어 SNS메시지 발행내역을 DB에 저장하는 것은 Transactional로 묶어두었으니 메시지 유실이 발생해도 발행여부는 false로 남으니 이것들만 찾아서 메시지 재발행을 하면 된다. 우리 팀은 이 유실된 메시지를 스케쥴러를 통해 5분마다 스프링 배치로 event_record_table에서 발행여부가 false인 유실된 메시지를 가지고 와서 SNS메시지를 재발행시키기로 결..
[Spring MSA] 스프링 이벤트와 SNS/SQS로 DB 정합성 보장 2탄 - ZeroPayload로 FeignClient 요청
·
MSA
이번에는 멤버 서버의 SNS로 발행한 메시지를 받은 레시피 서버의 SQS리스너 동작에 대해서 설명한다. 이 글은 이전에 작성한 MSA 이벤트 정합성 보장방법 1탄에서 이어지는 내용이라 이것을 읽기 전에 꼭 아래의 글을 보고 오자 Spring Event와 AWS SNS, SQS를 활용한 MSA 데이터 정합성 보장 전략 나는 DB 정합성 보장을 위해 Spring Event를 다음과 같이 사용했다. 잠시 이전 글의 서론을 다시 가져왔다. 한번 읽어보자 내가 구성한 MSA 프로젝트에서는 멤버 서버와 또 다른 서버가 상호 작용한다 curiousjinan.tistory.com 1. 포스트 내용 요약 1-1. 이전 포스트의 내용 요약 내가 구성한 MSA 프로젝트에서는 멤버 서버와 또 다른 서버가 상호 작용한다. 만약..
AWS Message-Driven 입문 1편: SNS 설정으로 시작하는 MSA
·
AWS/SNS, SQS
이번 포스트에서는 SNS 설정을 해보도록 하자 이번 시리즈에서는 마이크로서비스 아키텍처(MSA) 내에서 메시지 주도 통신을 구현하기 위해, Kafka 대신 AWS의 SNS와 SQS를 활용하는 방법을 단계별로 설명한다. SNS 설정부터 시작해 SQS와의 통합 과정까지, 실제 사용 사례를 통해 설명하겠다. 1. SNS란 무엇인가? 1-1. AWS SNS(Simple Notification Service)란? SNS는 "publish/subscribe" 모델을 기반으로 하는 관리형 서비스다. 이 서비스를 사용하면 메시지를 주제(topic)에 발행하고, 다양한 구독자(subscriber)들이 이 메시지를 받을 수 있다. 구독자는 이메일, SMS, HTTP/HTTPS 엔드포인트, 람다 함수 등 다양한 방식으로 메..