반응형
책 '실전 아파치 카프카'를 보며 정리한 내용
카프카 자격증을 취득하는 그날까지...
1. 아파치 카프카 개요
1.1 목표
- 아파치 카프카의 용도
- 아파치 카프카가 탄생한 배경과 영향
1.2 아파치 카프카
- 여러대의 분산 서버에서 대량의 데이터를 처리하는 분산 메시징 시스템으로 메시지를 받고, 받은 메시지를 다른 시스템이나 장치에 보내기 위해 사용.
- 여러 시스템과 장치를 연결하는 중요한 역할.
- 대량의 데이터를 높은 처리량과 실시간으로 취급하기 위한 제품.
- 확장성 : 여러 서버로 '확장 구성'이 가능, 데이터에 양에 따라 시스템 확장이 가능.
- 영속성 : 수신한 데이터를 '디스크에 유지' 할 수 있기 때문에 언제든지 데이터 접근.
- 유연성 : '연계할 수 있는 제품이 많기' 때문에 제품이나 시스템을 연결하는 허브 역할.
- 신뢰성 : '메시지 전달 보증' 데이터의 분실을 걱정하지 않아도 된다.
- 현재 종합 스트림 처리를 위한 플랫폼이 되고 있다.
1.3 카프카 탄생 배경
1.3.1 링크드인의 시스템 요구 사항
- 카프카는 2011년 미국 링크드인에서 출발했다. 웹사이트의 로그를 처리하여 웹사이트 활동을 추적하는것을 목적으로 개발되었다.(사용자의 페이지 뷰&광고의 이용 등)
- 링크드인의 목표
1.3.2 카프카 이전 제품(링크드인의 요구사항을 충족하지 못한 부분)
- 메시지 큐
- 한 건의 레코드 단위로 실시간 처리를 위한 것.(WebSphere MQ,Active MQ, Rabbit MQ, 등)
- 강력한 전달 보증이 오히려 오버 스팩.(링크드인은 '높은 처리량'의 우선순위가 더 높았다.)
- 스케일 아웃이 용이 하지 않았다.
- 메시지가 대량으로 쌓이는 것을 예상하지 않았다.
- 로그 수집 시스템
- 주로 웹 서버 등의 프론트엔드 서버의 로그를 수집하기 위한 것.(Scribe, Flume, 등)
- HDFS로 데이터 축적과 배치 처리만 고려.
- 어려운 API
- 수신하는 쪽이 임의로 메시지를 수신하기 어렵다.
- ETL 도구
- 데이터 발생원에서 데이터를 추출하고 필요에 따라 변환해 데이터베이스와 데이터 웨어하우스에 로드하는 기능을 갖추고 있다.(DataStage, Interstage, Cosminexus, Informatica PowerCenter, Talend, 등)
반응형
'KAFKA > 개념 정리' 카테고리의 다른 글
[KAFKA] APACHE KAFKA 기초 (0) | 2021.04.13 |
---|---|
[Kafka] Kafka(카프카) (0) | 2020.10.13 |