[Kafka] Message Queue

이홍준·2023년 7월 27일
0

Kafka

목록 보기
1/2

MSA를 구축하려면 필요한 연관된 여러 기술들이 존재한다. 서비스를 운영에 있어서 사용성은 매우 중요하다. 특히 요즘 많이 요구하는 대용량 처리에 대한 관심이 매우 높아졌다고 한다. 그래서 MSA를 도입하기 전에 대용량 처리에 있어서 많이 쓰고 있는 기술인 Message Queue에 대해서 먼저 공부 해보려고 한다.

What is Message Queue?

메시지 큐는 프로세스나 프로그램 간에 데이터를 교환할 때 사용하는 통신 방법 중에 하나로, 메시지 지향 미들웨어를 구현한 시스템을 의미한다.

여기서 말하는 메시지란 Reqeust, response, error, 단순한 정보 등의 작은 데이터를 의미한다. 메시지 큐는 메시지를 송신&수신하기 위해 중간에 위치한다.

messageQueue

  • 메시지는 하나의 consumer가 한 번만 처리한다.
  • 규모가 큰 처리 작업을 결합 해제하고, 버퍼링 또는 배치 작업을 수행하고, 급변하는 워크로드를 원활하게 지원하는 데 사용될 수 있다.
  • 메시지 지향 미들웨어(Message Oriented Middleware:MOM): 비동기 메시지를 사용하는 응용 프로그램들 사이에서 데이터를 송수신하는 것을 의미함.

Use Cases of Message Queue

요즘의 클라우드 아키텍처들은 좀 더 쉽게 개발, 배포 등 관리하기 편하게 위해 MSA방식과 같이 더 작고 독립적으로 운영된다. 메시지 큐는 이런 분산 처리를 위한 통신 및 조정 기능을 제공한다. 하지만 실제로 메시지를 어느 시점에 가져가서 처리하는 것에 대한 비동기적인 성격 때문에 복잡하고 핵심적인 기능에는 추천하지 않는다.

다음은 사용할 만한 예시 기능이다.

  • 이메일 전송
  • 주문 처리
  • 로그 처리
  • 알림 서비스
  • 배치 작업

장점

  • 안정성: 중요한 비즈니스 메시지가 사라지지 않고 consumer가 단 한번만 전달되도록 할 수 있다. 별도의 중복, 손실 방지 로직이 필요하지 않다.
  • 연결성: 메시지 암호화, 트랜잭션 속성을 비롯해 서비스 간의 각종 통신 요소를 다룰 수 있다.
  • 복원성: 비동기 메세징에서는 각 서비스마다 관련 오류의 독립성을 보장하기 때문에 한 부분의 오류에 대해서 시스템 전체까지 영향을 미치지 않게 된다.
  • 통합 파일 전송: 파일 전송과 같은 부가 기능도 제공한다. FTP의 대안이 될 수 있다.

vs Pub/Sub

둘 다 비동기식 통신 방식이다. 메시지 큐는 지점간(point-to-point) 메시징 패턴을 사용한다. 즉 producer와 consumer는 서로 1:1 관계이다. 그러나 Pub/Sub 방식은 여러 consumer들에게 전송해야 하는 경우에서 큰 차이가 있다. 그래서 대부분 메시징 미들웨어 솔루션은 메시지 큐와 pub/sub 메시징 모델을 결합해서 사용한다.

결론

메시지 큐는 프로세스나 프로그램 간에 효율적인 비동기 통신 방법으로, 대용량 처리와 분산 아키텍처에 주로 사용된다고 한다. Pub/Sub과 함께 사용되기도 하며, 안정성, 연결성, 복원성 등의 장점이 있다. 이메일 전송, 주문 처리, 로그 처리, 알림 서비스 등과 같은 경우를 다음에 MSA를 도입할 때 사용할 예정이다.


References

profile
I'm a web developer.

0개의 댓글