- LinkedIn에서 개발된 분산 메시징 시스템
- 대용량의 실시간 로그 처리에 특화
- 범용 메시징 시스탬 대비 TPS가 높다.
- 분산, 복제가 손쉽다.
- 파일 시스템을 사용하므로 데이터 영속성이 보장된다.
- 2011년 오픈소스로 공개
- 중간 버퍼링용의 Q메시징 시스템
- Disk기반 Q메시징 시스템
- 메모리기반의 Q메시징 시스템보다 더 좋은 스루풋을 제공한다. (약 4배)
- Q모델 시스템은 반드시 써야 한다.
- 데이터에 대한 정합성 보장
- 전체 시스템에 대한 운용 및 가용성을 증대 시킨다.
- 구간의 장애에 대한 완충효과
confluent : kafka 개발자 3인이 나와서 상용화 해서 만든 플랫폼, kafka와 사용은 크게 차이가 없으나, communite버전과 pro버전의 기능 차이가 있음.
<<Apache kafka vs Hadoop>>
- Kafka는 실시간에 가까운 데이터 처리.
- Hadoop은 배치성, 대용량 데이터 처리를 위해서 사용.
<<Apache kafka cluster architecture>>
이미지출처 : http://hahaskills.com/tutorials/kafka/KafkaArch_doc.html
팁
kafka에 데이터 저장은 원천데이터를 저장해 놓아야 한다.
- 원천데이터와 맞는지 데이터 정합성을 검증.
- 가공된 데이터로는 정합성을 검증하기 어려움.