본문 바로가기
Back Side/etc

[기타] Message Queue

by developerBeluga 2022. 6. 29.
728x90
반응형

 

 

메시지 큐란

프로세스(또는 프로그램) 간에 데이터를 교환할 때 사용하는 통신 방법 중 하나입니다.

비동기 메시지를 사용하는 응용 프로그램들 사이에서 데이터를 송수신하는 것을 의미합니다.

메시지란 요청, 응답, 오류 메시지 혹은 단순한 정보 등의 작은 데이터가 될 수 있습니다.

 

여기에서 메시지 큐는 메시지를 임시로 저장하는 간단한 버퍼인 것이다.

메시지를 전송 및 수신하기 위해 중간에 메시지 큐를 두는거죠.

 

대표적인 메시지 큐 시스템은 RabbiMQ, ActiveMQ, ZeroMQ, Kafka가 있습니다.

 

사용하는 이유

일반적인 클라이언트-서버 구조에서는 메시지 큐를 사용하지 않습니다.

대신 언젠가는 큐에 넣어둔 메시지가 소비되어 처리될 것이라고 생각하고 사용합니다.

그렇기 때문에 핵심 작업보다는 어플리케이션의 부가적인 기능에 사용하는 것이 적합합니다.

 

예를들어, 이메일 전송이 있습니다.

비밀번호를 잊어버려서 이메일을 통해 임시 비밀번호를 받거나, 인증코드를 보내는 서비스를 큐에 넣어두고 요청이 들어올 때 이메일을 전송하면 됩니다.

 

 

장점

아무래도 가장 큰 이점은 비동기라고 생각합니다.

큐에 메시지를 넣어두고 나중에 처리할 수 있기 때문에 서비스 간 결합도가 낮아지고 확장성이 좋아집니다.

또한 어플리케이션이 중단 되더라도 메시지는 큐에 남아 있기 때문에 추가 작업 없이 메시지를 처리 할 수 있습니다!

 

 

 

 

+

좀 더 공부하고 싶은 분들은 아래 블로그에 들어가셔서 한 번 보시면 좋을 것 같습니다.

https://brunch.co.kr/@springboot/374

 

Spring Boot Redis Pub/Sub

스프링부트 환경에서 레디스 Pub/Sub 구현하기 | Redis는  Key-Value 기반의 캐시 저장소이지만, 캐시 기능 외에도 다양하게 사용되는 오픈소스이다. 이 글에서는 Redis에서 제공하는 Pub/Sub 기능에 대

brunch.co.kr

 

 

 

 

728x90
반응형

댓글