본문 바로가기
  • 시 쓰는 개발자
1일 1개념정리 (24년 8월~12월)/네트워크, 클라우드

1일1개 (84) - 아이스크림 무인매장 속 비동기 처리

by poetDeveloper 2024. 11. 17.

1일 1개념정리 24.08.09.금 ~ 

 

큰 결정에 큰 동기가 따르지 않을 때도 있다. 하지만 큰 결심이 따라야 이뤄낼 수 있다.

무조건 무조건 1일 1개의 개념 정리하기 !!!!!!!!!!!!!!!!!!!!!!!!!!!!!


#84. 메시지 큐(Message Queue)

동기, 비동기 할때도 그렇고 네트워크 할때도 종종 메세지 큐에 대해서 나오는데 사실 그냥 "큐"겠거니 정도만 생각하고 넘어가서, 한번 정리해보려 한다. 

 

메시지 큐

메시지 큐는 애플리케이션 간 비동기적으로 데이터를 교환할 때 쓰는 "비동기 방식의 메시지 전달 시스템"이다. 이를 통해 시스템 기능이 독립적으로 작동하면서 데이터를 주고받을 수 있다. 메시지 큐는 생산자, 소비자라는 개념으로 메세지를 관리하고 큐를 제공한다. → 비동기처리, 로드밸런싱, 분산 시스템 통신, 이벤트 기반 처리에 유용하다 !!!!

 

메시지 큐 개념

  1. 생산자 (Producer) : 메시지를 생성하여 큐에 넣는 역할이다. ex. 주문 데이터를 생성하는 애플리케이션
  2. 소비자 (Consumer) : 큐에서 메시지를 가져와 처리한다. ex. 주문 데이터를 처리하고 결제 시스템과 연결
  3. 큐 (Queue) : 메시지를 임시로 저장하는 큐다. 생산자가 메시지를 큐에 추가하면, 소비자는 순서대로 메시지를 처리한다.
  4. 브로커 (Broker) : 메시지 큐를 관리하고, 메시지의 전송과 분배를 중개한다. ex. Apache Kafka, AWS SQS

 

특징 (중요)

  1. 비동기 처리 (제일 큰 특징) : 생산자와 소비자가 동시에 작동하지 않아도 데이터를 교환 가능. 그래서 생산자와 소비자의 데이터 처리 속도가 달라도 됨.
  2. 느슨한 결합 : 서로 다른 애플리케이션 간의 의존성을 낮춰 시스템 유연성 증가. → 결제 시스템이 일시 중단 되어도 주문 처리는 계속 됨 .
  3. 확장성 : 메시지를 여러 소비자로 분배해서 처리하므로 부하를 분산할 수 있음. (병렬처리)
  4. 순서 보장 : 대부분의 메시지 큐는 메시지가 생성된 순서를 유지함.

작동 방식

  1. 생산자가 메시지를 생성하여 큐에 보냄.
  2. 큐는 메시지를 브로커에 저장하고 대기 상태로 유지.
  3. 소비자가 큐에서 메시지를 가져와 처리.
  4. 메시지 처리가 완료되면 메시지가 큐에서 제거되거나 상태를 업데이트.

ex. 아이스크림 무인 매장

  • : 계산대 위의 돈과 구매 영수증 상자
  • 생산자 : 고객
  • 소비자 : 점원
  • 메시지 : 고객의 구매 내역과 돈
  1. 고객(생산자)이 점원 없이 물건을 가져가고, 계산대에 돈과 구매 내역(메시지)을 남김.
  2. 점원이 없어도 다른 고객들은 줄을 안서도 계속 물건을 가져가고 메시지를 남길 수 있다.
  3. 점원(소비자)은 한 번에 모든 메시지를 처리하거나, 시간이 날 때마다 하나씩 확인한다. = 비동기처리
  4. 고객은 물건을 가져가고, 점원은 남긴 메시지(구매 정보와 돈)를 나중에 처리할 수 있으므로, 고객과 점원이 반드시 동시에 있을 필요가 없다.
반응형