Just Fighting

[Kafka] 카프카 기본개념 본문

Big Data

[Kafka] 카프카 기본개념

yennle 2022. 5. 10. 20:10
728x90

< 카프카 사용 이전 >

데이터를 전송하는 소스 애플리케이션과 데이터를 받는 타겟 애플리케이션이 있음

처음에는 간단하게 단방향 통신을 했음

 

시간이 지나면서 소스 애플리케이션과 타겟 애플리케이션이 많아지고 데이터를 조성하는 라인이 복잡해짐

소스 애플리케이션와 타겟 애플리케이션 개수가 늘어날수록 데이터 전송 라인이 많아짐

-> 배포와 장애에 대응하기 어려움

데이터를 조성할 때 프로토콜, 포맷의 파편화가 심해짐

-> 포맷내부에 변경사항이 있을 때 유지보수하기가 어려워짐

 

이런 복잡함을 해결하기 위해 링크드인에서 아파치 카프카를 개발하였고, 오픈소스로 제공!

 

 

 

 

아파치 카프카는 소스 애플리케이션과 타겟 애플리케이션의 연결을 약하게 하기 위해 나옴.

소스 애플리케이션은 데이터를 카프카에 전송하면 되고,

타겟 애플리케이션은 데이터를 카프카에서 가져오면 됨.

 

 

소스 애플리케이션은 쇼핑몰의 클릭로그, 결제로그 등을 보낼 수 있으며,

보낼 수 있는 데이터 포맷은 거의 제한이 없음. json, tsv, avro

타겟 애플리케이션은 로그 적재, 로그 처리 등의 역할을 함.

 

 

카프카는 각종 데이터를 담는 토픽이라는 개념이 있음. 쉽게 말해 큐같은 것.

큐에 데이터를 넣는 것을 프로듀서가 하고,

큐에서 데이터를 가져가는 것은 컨슈머가 한다.

프로듀서와 컨슈머는 라이브러리로 되어있어서 애플리케이션에서 구현 가능

 

 

 

참고 : https://www.youtube.com/watch?v=waw0XXNX-uQ&list=PL3Re5Ri5rZmkY46j6WcJXQYRlDRZSUQ1j&index=1 

 

728x90
Comments