Over the limit
Apache Kafka란? 본문
비동기 방식에 기반해서 효율적으로 백엔드를 설계하는 방법을 찾아보다가
MSA 아키텍처에서 사용되는 메세지 큐(Message Queue:MQ) 를 이용한 비동기식 처리를 알게 되었다.
백엔드에서 입력 후, 사이에 메세지 큐를 둬서 효율적으로 비동기를 설계하는 방식이다.
MQ 메세지 큐란?
MQ 메세지 큐란? 메시지 큐는 메시지 지향 미들웨어(MOM : Message Oriented Middleware)를 구현한 시스템으로 프로그램(프로세스) 간의 데이터를 교환할 때 사용하는 기술이다. 메세지는 데이터 패킷을
xean.tistory.com
그 중에서도 Kafa에 대해 알아보자.
Kafka란
파이프 라인, 스트리밍 분석, 데이터 통합을 위해 설계된 고성능 분산 이벤트 스트리밍 플랫폼
- 실시간 스트리밍 데이터 파이프라인/애플리케이션 구축 시 사용
- 파티셔닝을 통해 데이터를 여러 서버에 분산하며 확장 가능
- 분리된 데이터 스트림이 신속함을 줌
- 파티션이 여러 서버에 분산되어 복제되며 데이터는 모두 디스크에 기록됨. 서버 장애로부터 보호
작동 방식
대기열 방식과, 게시-구독이라는 두 가지 메시징 모델을 결합
1.대기열
데이터를 여러 인스턴스에 분산하여 확장시킴.
2. 게시-구독 Pub-sub
Pub/Sub 모델은 비동기 메세징 전송 방식으로, 발신자의 메세지에는 수신자가 정해져 있지 않은 상태로 publish.
그리고 이를 Subscribe(구독)을 한 수신자만 정해진 메세지(topic)을 받을 수 있다. 이처럼 수신자는 발신자 정보가 없어도 원하는 메세지만 수신할 수 있으며, 이런 구조 덕분에 높은 확장성 확보가 가능
+) Pub- sub가 아닌 일반 네트워크 통신 과정은 각 개체가 직접 연결하며 통신한다.
전송 속도가 빠르고, 결과도 신속하게 알 수 있는 반면에 장애 발생 시 메세지를 보내는 쪽에서 대기 처리 등을 개별적으로 해주지 않으면, 장애가 전파될 수 있다.
Kafka 효과
카프카 적용 전과 후를 비교해보자.
이전에는 시스템 복잡도도 증가하고, 데이터 파이프라인을 관리하는 데 어려움이 있었음.
하지만 카프카 적용 후, 모든 데이터/이벤트 흐름을 중앙에서 관리할 수 있게 되고,
새로운 서비스가 추가되어도 확장성과 신뢰성을 지킬 수 있다.
참고)
'Network' 카테고리의 다른 글
로드 밸런서 Load Balancer란 ? (0) | 2024.08.30 |
---|---|
CDN(Content Delivery Network)이란? (0) | 2024.08.30 |
MQ 메세지 큐란? (0) | 2024.08.27 |
NTP(Network Time Protocol) (0) | 2024.07.14 |
async/awiat을 통한 비동기 처리 (0) | 2022.08.21 |