본문 바로가기
PM으로 성장하기/개발 공부

MSA, Message Queue, Apache Kafka

by 고양이 고씨 2023. 5. 7.

개발자들이 작성한 서비스 설계도를 보면 Kafka가 나온다. kafka 에 대해서만 알아보려고 했는데 kafka 를 찾아보니 Message Queue 에 대해 알아야하고, Message Queue 를 찾아보니 MSA(MicroService Architecture)까지 이어진다.
 


MSA(MicroService Architecture)

https://hellotheresy.tistory.com/2

작고 독립적으로 배포 가능한 서비스들로 구성된 프레임워크를 의미한다. 완전히 독립적이고, 다른 기술 스택을 사용한다. 이전에는 Monolithic Architecture 방식으로 구현을 했다. 모듈별로 개발을 하고 하나로 패키징하여 배포하는 형태를 말한다. 하지만 규모가 커지고 여러 개발자들이 협업하는 환경에서는 부분장애, 영향도 파악, 배포 시간, 하나의 프레임워크에 종속적이라는 한계가 발생한다. 이에 따라 MSA 가 등장하게 되었고, 최근 많은 서비스들이 MSA 로 전환하고 있다. MSA는 각각의 컴포넌트가 서비스 형태로 구현되어 있다. 모놀리식이라면 한 번의 API 호출로 모든 정보를 가져오게 되는 반면, MSA는 API 서버의 end-point를 단일화하여 묶어주는 API Gateway로 통신한다.
 
 

Message Queue (MQ)

프로세스 간 데이터를 교환할 때 통신하는 방법 중 하나로, 메시지 지향 미들웨어를 구현한 것이다. 미들웨어는 애플리케이션을 연결하여 서로 데이터를 교환할 수 있도록 하는 소프트웨어를 의미한다. 메시지 지향이라는 것은, 메시지 API를 통해 애플리케이션들을 연결해주는 시스템을 말하며, 메시지를 통해 서로 비동기식 데이터를 교환할 수 있도록 한다. 메시지 큐는 응답을 바로 기다리지 않고 요청에만 집중할 수 있고, 응답에 실패하더라도 데이터를 보존하여 재시도가 가능하다.
 
메시지 브로커는 대규모 메시지 기반 미들웨어 아키텍처로 사용한다. 메시지 브로커에 있는 큐에 Producer와 Consumer가 데이터를 주고받으며 메시지를 통신한다. 메시지 브로커는 데이터를 보내고, 처리하고, 삭제한다. 레디스 큐, 레빗엠큐 등이 여기에 해당한다.
반면 이벤트 브로커는 삭제하지 않고 큐에 저장한다. 장애가 일어난 지점부터 재처리할 수 있고, 많은 양의 데이터를 효과적으로 처리할 수 있는 등의 장점을 갖고 있다. 카프카, 키네시스 등이 여기에 해당한다.
 
 

Apache Kafka

https://www.youtube.com/watch?v=waw0XXNX-uQ

소스 애플리케이션과 타겟 애플리케이션이 많아지면서 전송 라인이 많아지게 된다. 이로 인해 배포, 장애대응, 유지보수 등에 어려움이 발생한다. 이를 해결하기 위해 아파치 카프카가 등장하였고, 소스 애플리케이션은 아파치 카프카에 데이터를 전송하면 되고 타겟 애플리케이션은 아파치 카프카에서 데이터를 가져오면 된다. 카프카는 각종 데이터를 갖는 Topic 이라는 개념이 있는데, Queue라고 보면 된다. Producer가 Queue에 데이터를 넣고, Consumer은 Queue의 데이터를 가져간다. Consumer는 Elastic Search, Hadoop 등 원하는 용도에 따라 저장할 수 있다.

 


참고자료
[MSA] MSA란 무엇인가? 개념 이해하기, https://wooaoe.tistory.com/57
마이크로서비스 아키텍처(MSA) 개념 소개, http://clipsoft.co.kr/wp/blog/%EB%A7%88%EC%9D%B4%ED%81%AC%EB%A1%9C%EC%84%9C%EB%B9%84%EC%8A%A4-%EC%95%84%ED%82%A4%ED%85%8D%EC%B2%98msa-%EA%B0%9C%EB%85%90/
빅데이터의 기본 아파치 카프카! 개요 및 설명, 데브원영 DVWY, https://www.youtube.com/watch?v=waw0XXNX-uQ 
MQ(Message Queue)란, https://devbirdfeet.tistory.com/143
카프카와 메세지 큐, https://ldh-developer.tistory.com/22
카프카, 레빗엠큐, 레디스 큐의 큰 차이점! 이벤트 브로어콰 메시지 브로커에 대해, https://www.youtube.com/watch?v=H_DaPyUOeTo
메세지 큐(Message Queue)란 무엇인가? https://velog.io/@kimjaejung96/%EB%A9%94%EC%84%B8%EC%A7%80-%ED%81%90Message-Queue%EB%9E%80-%EB%AC%B4%EC%97%87%EC%9D%B8%EA%B0%80
메세지 지향 미들웨어(MOM), https://velog.io/@spamdong/%EB%A9%94%EC%84%B8%EC%A7%80-%EC%A7%80%ED%96%A5-%EB%AF%B8%EB%93%A4%EC%9B%A8%EC%96%B4MOM
 

728x90

댓글