[Spring MSA] 스프링 이벤트와 SNS/SQS로 DB 정합성 보장 2탄 - ZeroPayload로 FeignClient 요청
·
Spring MSA
이번에는 멤버 서버의 SNS로 발행한 메시지를 받은 레시피 서버의 SQS리스너 동작에 대해서 설명한다. 이 글은 이전에 작성한 MSA 이벤트 정합성 보장방법 1탄에서 이어지는 내용이라 이것을 읽기 전에 꼭 아래의 글을 보고 오자 Spring Event와 AWS SNS, SQS를 활용한 MSA 데이터 정합성 보장 전략 나는 DB 정합성 보장을 위해 Spring Event를 다음과 같이 사용했다. 잠시 이전 글의 서론을 다시 가져왔다. 한번 읽어보자 내가 구성한 MSA 프로젝트에서는 멤버 서버와 또 다른 서버가 상호 작용한다 curiousjinan.tistory.com 1. 포스트 내용 요약 1-1. 이전 포스트의 내용 요약 내가 구성한 MSA 프로젝트에서는 멤버 서버와 또 다른 서버가 상호 작용한다. 만약..
[Spring] SpringFramework 4.2 이후 스프링 이벤트의 변화
·
Spring MSA
SpringFramework 4.2 이후의 Spring 이벤트의 업데이트 사항을 알아보자 내가 구성한 MSA 프로젝트에서는 멤버 서버와 또 다른 서버가 상호 작용한다. 이 중, 유저가 닉네임을 변경할 때 멤버 서버의 닉네임 변경 메서드가 jpa를 통해 데이터베이스의 변경 사항을 커밋한다. 흥미로운 점은, DB 커밋 직후 비즈니스 로직을 종료하는 게 아니라 '유저 정보가 업데이트되었다'는 Spring 이벤트를 발행하고 종료한다. 그럼 이 이벤트를 구독하는 스프링 리스너가 AWS SNS에 "유저 정보가 업데이트되었다'는 메시지를 발행하도록 했다. 이러한 Spring 이벤트의 활용 방식에 대해 깊이 있게 이해하고자 Spring Framework 4.2 이후 추가된 기능들을 공식 페이지에서 직접 탐구해 보았다...
AWS Message-Driven 4편: SNS와 SQS를 SpringBoot에 연동하기
·
AWS/SNS, SQS
이번 포스트에서는 SNS, SQS를 SpringBoot와 연동해 보자 1. SpringBoot 설정하기 1-1. SpringBoot 의존성 추가 (Build.gradle 파일) AWS의 메시지 서비스인 SQS(Simple Queue Service)와 SNS(Simple Notification Service)를 Spring Boot 애플리케이션과 통합하기 위한 의존성을 추가한다. 아래와 같이 코드를 작성한다. // AWS implementation platform("io.awspring.cloud:spring-cloud-aws-dependencies:3.0.1") implementation 'io.awspring.cloud:spring-cloud-aws-starter-sqs' implementation '..
AWS Message-Driven 완성 3편: SNS와 SQS 연동 및 테스트 전략
·
AWS/SNS, SQS
이번 포스트에서는 SNS와 SQS를 연동해 보도록 하자 1. SNS 주제(Topic) 구독 생성 1. SQS로 들어가기 구독을 위해서는 SNS가 아닌 SQS에서 구독하는게 더 확실하다. 하단과 같이 우측의 메뉴바에서 “대기열”을 클릭하자 1-2. 대기열 이름 클릭하기 대기열에 보이는 목록중에 이름을 클릭해서 들어간다. 이름을 클릭해서 세부 정보 페이지로 들어왔다면 하단의 "SNS구독"이라는 목록을 확인하자 1-3. Amazon SNS주제(topic) 구독하기 하단의 Amazon SNS 주제 구독 버튼을 누른다. 1-4. SQS가 구독할 SNS의 주제 선택하기 하단 박스처럼 내가 SNS의 주제를 선택해서 구독할 수가 있다. 1-5. 주제 구독완료 저장 버튼을 누르면 아래와 같은 팝업창이 나오면서 주제 구독..
AWS Message-Driven 실전 2편: SQS 구축과 테스트 검증
·
AWS/SNS, SQS
이번 포스트에서는 SQS를 설정하고 테스트까지 해보도록 하자 1. SQS란 무엇인가? 1-1. SQS(Simple Queue Service) AWS에서 제공하는 완전 관리형 메시지 큐 서비스로, 분산 시스템에서 메시지를 저장하고 전달하는 데 사용된다. 이 서비스를 사용하면 서버리스 마이크로서비스, 분산 시스템, 서버 기반 애플리케이션 간에 안정적이고 확장 가능하며 느슨하게 결합된 통신을 구현할 수 있다. 1-2. SQS의 기능과 장점 탈중앙화 및 비동기 처리 SQS를 사용하면 메시지를 큐에 저장하여 애플리케이션의 각 부분이 자신의 속도로 처리할 수 있다. 이는 시스템 간의 탈중앙화를 가능하게 하고, 피크 시간에 발생하는 부하를 관리하는 데 도움이 된다. 확장성 및 내구성 SQS는 자동으로 확장되므로, 처..
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 엔드포인트, 람다 함수 등 다양한 방식으로 메..