Just Fighting
[Kafka] 카프카 기본개념 본문
< 카프카 사용 이전 >
데이터를 전송하는 소스 애플리케이션과 데이터를 받는 타겟 애플리케이션이 있음
처음에는 간단하게 단방향 통신을 했음
시간이 지나면서 소스 애플리케이션과 타겟 애플리케이션이 많아지고 데이터를 조성하는 라인이 복잡해짐
소스 애플리케이션와 타겟 애플리케이션 개수가 늘어날수록 데이터 전송 라인이 많아짐
-> 배포와 장애에 대응하기 어려움
데이터를 조성할 때 프로토콜, 포맷의 파편화가 심해짐
-> 포맷내부에 변경사항이 있을 때 유지보수하기가 어려워짐
이런 복잡함을 해결하기 위해 링크드인에서 아파치 카프카를 개발하였고, 오픈소스로 제공!
아파치 카프카는 소스 애플리케이션과 타겟 애플리케이션의 연결을 약하게 하기 위해 나옴.
소스 애플리케이션은 데이터를 카프카에 전송하면 되고,
타겟 애플리케이션은 데이터를 카프카에서 가져오면 됨.
소스 애플리케이션은 쇼핑몰의 클릭로그, 결제로그 등을 보낼 수 있으며,
보낼 수 있는 데이터 포맷은 거의 제한이 없음. json, tsv, avro 등
타겟 애플리케이션은 로그 적재, 로그 처리 등의 역할을 함.
카프카는 각종 데이터를 담는 ‘토픽’이라는 개념이 있음. 쉽게 말해 큐같은 것.
큐에 데이터를 넣는 것을 ‘프로듀서’가 하고,
큐에서 데이터를 가져가는 것은 ‘컨슈머’가 한다.
프로듀서와 컨슈머는 라이브러리로 되어있어서 애플리케이션에서 구현 가능
참고 : https://www.youtube.com/watch?v=waw0XXNX-uQ&list=PL3Re5Ri5rZmkY46j6WcJXQYRlDRZSUQ1j&index=1
'Big Data' 카테고리의 다른 글
[Kafka] 카프카 개념정리 - 토픽 (0) | 2022.05.11 |
---|---|
[PySpark] 하이퍼 파라미터 튜닝하기 (0) | 2022.04.02 |
[PySpark] Pipeline 사용하기 (0) | 2022.03.29 |
[PySpark] MLlib를 이용한 로지스틱 회귀분석 (0) | 2022.03.24 |
[Spark] 데이터 전처리하기(spark sql사용, 결측값 처리) (0) | 2022.03.15 |