본문 바로가기
언어 & 라이브러리/카프카

아파치 카프카란?

by illlilillil 2022. 2. 8.

아파치 카프카란

대용량, 대규모 메시지 데이터 처리하기 위한 분산 메시징 플랫폼입니다.

 

카프카를 쓰는 이유?

서버가 늘어나면서 타겟이 한 곳이 아니라 여러 곳으로 분산해서 데이터를 보내게 됩니다.

실시간 트랜잭션 처리와 비동기 처리가 이뤄져야 하지만 관리하는 플랫폼이 없어 파이프라인 관리가 어려워집니다.

 

카프카는 송신자와 수신자 사이에 위치에 적절하게 메시지를 분리해줍니다.

 

송신자(Publisher): 카프카에 데이터를 전송만 담당한다. 누가 받는지는 신경 쓰지 않습니다.

수신자(Subscriber): 수신자는 카프카에 원하는 토픽을 구독하고 데이터를 받습니다.

 

누구에게 보낼지 신경 쓰지 않아도 되며 수신자는 원하는 토픽의 메시지만 가져올 수 있습니다.

유지보수, 트래픽, 에러 처리 등에 대해 유리해집니다.

 

장점 

1. 프로듀서와 컨슈머의 분리

2. 메시지 데이터를 여러 컨슈머가 받아볼 수 있습니다.

3. 높은 처리량

4. 스케일 아웃

 

카프카의 구성 요소 3가지

1. Producer : 큐에 데이터를 보내는 역할 담당

 

2. Topic : 카프카에 존재하는 것으로 프로듀서가 보낸 데이터를 구분합니다.

 

3. Consumer : 토픽으로 구분된 데이터를 받습니다.

 

토픽 내부에는 여러 개의 파티션으로 구성되어 있습니다.

한 토픽에 메시지가 쏟아진다면 토픽에 과부하가 일어나게 될 것입니다. 그렇기에 파티션을 나누어 각 파이션에 쓰기가 가능하도록 분할하는 기능을 수행합니다.

파티션에 데이터 넣는 법

파티션이 큐처럼 데이터가 파티션 끝에서부터 쌓입니다. 오래된 순서대로 데이터를 가져가고 데이터가 없다면 대기 합니다.

컨슈머가 데이터를 가져가도 데이터는 삭제되지 않습니다. 다른 컨슈머가 데이터 요청을 하면 0번부터 가져갈 수 있습니다.

같은 데이터라도 다른 목적으로 처리할 수 있기 때문입니다.

 

로그 분석 및 시각화를 위해 엘라스틱 처리를 한다던지 로그 백업을 위한다던지 여러 가지가 있습니다.

 

 

 

참고 문헌

 

데브원영 DVWY

#Bigdata #DevOps #Hackathon #Blog #Tips 개발하면서 겪었던 많은 경험들을 공유하고자 합니다. 개발관련 다양한 내용에 대해서 알고싶으시다면 구독🔔 질문은 댓글💬 감사합니다!! contact : devwonyoung.biz@gm

www.youtube.com

 

kafka강의1 | 아파치 카프카(Apache Kafka)란?

나는 개발보다 빅데이터플랫폼,데이터파이프라인 이런 데이터엔지니어쪽을 공부하고 싶다. 하지만 막상 너무 막연해서 매번 무료강의임에도 미뤄뒀는데 갑자기 어느순간 배우고 싶어서 강의

pearlluck.tistory.com

 

'언어 & 라이브러리 > 카프카' 카테고리의 다른 글

카프카 명령어 정리  (0) 2022.02.12
스프링에서 카프카 시작하기  (0) 2022.02.09

댓글