Over the limit

Apache Kafka란? 본문

Network

Apache Kafka란?

ellapk 2024. 8. 27. 22:55

비동기 방식에 기반해서 효율적으로 백엔드를 설계하는 방법을 찾아보다가

MSA 아키텍처에서 사용되는 메세지 큐(Message Queue:MQ) 를 이용한 비동기식 처리를 알게 되었다.

백엔드에서 입력 후, 사이에 메세지 큐를 둬서 효율적으로 비동기를 설계하는 방식이다.

https://xean.tistory.com/156

 

MQ 메세지 큐란?

MQ 메세지 큐란? 메시지 큐는 메시지 지향 미들웨어(MOM : Message Oriented Middleware)를 구현한 시스템으로 프로그램(프로세스) 간의 데이터를 교환할 때 사용하는 기술이다. 메세지는 데이터 패킷을

xean.tistory.com

 

 

그 중에서도 Kafa에 대해 알아보자.

 

 

Kafka란

파이프 라인, 스트리밍 분석, 데이터 통합을 위해 설계된 고성능 분산 이벤트 스트리밍 플랫폼

 

- 실시간 스트리밍 데이터 파이프라인/애플리케이션 구축 시 사용

- 파티셔닝을 통해 데이터를 여러 서버에 분산하며 확장 가능

- 분리된 데이터 스트림이 신속함을 줌

- 파티션이 여러 서버에 분산되어 복제되며 데이터는 모두 디스크에 기록됨. 서버 장애로부터 보호

 

 

 

 

 

작동 방식

대기열 방식과, 게시-구독이라는 두 가지 메시징 모델을 결합

 

 

1.대기열

데이터를 여러 인스턴스에 분산하여 확장시킴.

 

2. 게시-구독 Pub-sub

Pub/Sub 모델은 비동기 메세징 전송 방식으로, 발신자의 메세지에는 수신자가 정해져 있지 않은 상태로 publish.

그리고 이를 Subscribe(구독)을 한 수신자만 정해진 메세지(topic)을 받을 수 있다. 이처럼 수신자는 발신자 정보가 없어도 원하는 메세지만 수신할 수 있으며, 이런 구조 덕분에 높은 확장성 확보가 가능

 

 

 

+) Pub- sub가 아닌 일반 네트워크 통신 과정은 각 개체가 직접 연결하며 통신한다.

전송 속도가 빠르고, 결과도 신속하게 알 수 있는 반면에 장애 발생 시 메세지를 보내는 쪽에서 대기 처리 등을 개별적으로 해주지 않으면, 장애가 전파될 수 있다.

 

 

 

 

 

Kafka 효과

카프카 적용 전과 후를 비교해보자.

이전에는 시스템 복잡도도 증가하고, 데이터 파이프라인을 관리하는 데 어려움이 있었음.

하지만 카프카 적용 후, 모든 데이터/이벤트 흐름을 중앙에서 관리할 수 있게 되고,

새로운 서비스가 추가되어도 확장성과 신뢰성을 지킬 수 있다.

 

 

 

 

 

 

 

참고)

https://velog.io/@holicme7/Apache-Kafka-%EC%B9%B4%ED%94%84%EC%B9%B4%EB%9E%80-%EB%AC%B4%EC%97%87%EC%9D%B8%EA%B0%80

'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