ㅅㅇ

[Kafka] MQ (Message queue) 본문

SW_STUDY/Kafka

[Kafka] MQ (Message queue)

SO__OS 2023. 3. 8. 19:49

MQ(Message queue) 란?

  • 크게, Producer, Consumer 로 구성되며, Producer는 메시지를 큐에 전송하고 Consumer가 큐의 메시지를 처리하는 방식이다.
  • MQ는 비동기로 요청을 처리하고 queue에 저장하여 consumer에게 병목을 줄여줄 수 있다.

MQ의 종류

  • RabbitMQ, Kafka, ActiveMQ …
  • 각 시스템 목적에 맞춰 사용하는 게 가장 바람직하다.

쓰이는 이유

  • 일반적으로 Server-Client 구조에서는 사용자가 요청을 하면 Server에서는 Request에 대한 처리를 한 후 Response 한다. 이런 간단한 구조는 MQ와 같은 미들웨어를 사용할 필요가 없다.
  • 서버 간 데이터를 주고받을 때 만약 서버가 죽거나 서버 점검 등으로 다운 타임이 발생하는 동안에는 요청을 보낼 수 없게 된다. 이러한 시스템 장애를 MQ 의 방식으로 해결할 수 있다.
  • 요청하는 서버에서 Failover 처리를 하고, 연계 시스템이 다시 살아났을 때 요청을 보내는 방법도 있지만 MQ 방법이 더욱 간편하다.
  • ⇒ Message가 Queue에 쌓였다면 Consumer에서 메시지를 소비하기 전까지 Message queue에 보관되게된다. 만약 Consumer 쪽 Server가 Fail 되었다면 MQ에 보관되게 된다.

장점

  • 비동기, 비동조, 탄력적, 과잉, 보증, 확장성
  • 부하분산
  • 데이터 손실 방지.
  • Failover 커버 가능.

'SW_STUDY > Kafka' 카테고리의 다른 글

[Kafka] 설치 및 테스트  (0) 2023.03.08
[Kafka] Kafka & Zookeeper  (0) 2023.03.08