aws/SQS

springboot sqs 문자/이메일전송

디비드킴 2021. 12. 16. 23:04

사실 이번 jangbogo프로젝트는
모놀리식 아키텍처가 아닌
마이크로아키텍처로 하려고 했으나!
그러면 진짜 프로젝트 완성 못할 거 같아서...ㅋㅋㅋ
다른 서버라고 치고 구현해보자!
(나중에 배치만 따로만들자)

일단 springboot + sqs를 하는 방법은
https://www.youtube.com/watch?v=q3zo3YREfJI

이 분거 보는 게 최고다
s3/sns도 이분 꺼 보고 붙였다
이분 장점이 다른 코드에 추가가 아니라 그냥
어떻게 기본적으로 연결하는지 보여준다

 

디펜던시별로 차이가 약간있는데

영상으로는

    implementation group: 'org.springframework.cloud', name: 'spring-cloud-aws-messaging', version: '2.2.6.RELEASE'
    implementation group: 'org.springframework.cloud', name: 'spring-cloud-starter-aws', version: '2.2.6.RELEASE'

추가해주고

sqsConfig.java

이렇게 빈에 등록해준다
이거는 aws에서 요구하는 방법이기 때문에 따라 해야 한다

sqsService.java
sqsService.java

의존성 주입
@Autowired
private QueueMessagingTemplate queueMessagingTemplate;
전송해주는 함수
queueMessagingTemplate.send(end_point,MessageBuilder.withPayload(text+"/"+val).build());

sqs로 전송된 메시지를 받는 방법은 두 가지인데난 sqsListener를 사용하겠다

sqsService.java


sqsListener(내가 만든 sqs이름)으로 해주면
알아서 받아온다

마지막
application.properties

#aws
cloud.aws.credentials.access-key=키
cloud.aws.credentials.secret-key=비밀키
cloud.aws.region.static=ap-northeast-2 
 
#이게 꼭있어야한다
cloud.aws.region.auto=false
cloud.aws.stack.auto=false

꼭 설정해줘야 한다

내 sqs


테스트

휴대폰/이메일 둘 다 해보면

sms_sqs/email_sqs 로그가 찍힌다 자동으로 폴링 해와서 내가 구현해 놓은 전송 로직을 탄다!

만약

implementation group: 'com.amazonaws', name: 'aws-java-sdk-sqs', version: '1.12.201'

사용중이라면

@EnableSqs

어노테이션을 붙혀주면된다