1. 카프카 특징
# 대표적인 특징
- 프로듀서와 컨슈머의 분리
- 멀티 프로듀서, 멀티 컨슈머
- 디스크에 메시지 저장
- 확장성
- 높은 성능
1. 프로듀서와 컨슈머의 분리
-
카프카는 메시징 전송방식 중 메시지를 보내는 역할과 받는 역할이 완벽하게 분리된 펍/섭 방식 적용.
-
이런 느슨한 결합을 통해 어느 한쪽 시스템에서 문제가 발생하더라도 서로 의존성이 없으므로 연쇄작용이 발생할 확률은 매우 낮음
-
장점 : 컨슈머의 서버가 하나더 추가 되더라도 카프카로만 보내면 되기 때문에 서버 추가에 대한 부담도 줄일 수 있음
2. 멀티 프로듀서, 멀티 컨슈머
-
카프카는 하나의 토픽에 여러 프로듀서 또는 컨슈머들이 접근 가능한 구조로 되어 있음.
-
하나의 프로듀서가 하나의 토픽에만 메시지를 보내는 것이 아니라, 하나 또는 하나이상의 토픽으로 메시지를 보낼 수 있음.
-
컨슈머는 역시 하나의 토픽에서만 메시지를 가져오는 것이 아니라, 하나 또는 하나 이상의 토픽으로부터 메시지를 가져올 수 있음.
-
이러한 멀티기능은 데이터 분석 및 처리 프로세스에서 하나의 데이터를 다양한 용도로 사용하는 요구가 많아지기 시작했고, 이러한 요구 사항들을 중앙 집중형 구조로 구성하여 손쉽게 충족.
3. 디스크에 메시지 저장
-
카프카는 컨슈머가 메시지를 읽어가더라도 일정한 보관 주기 동안 파일형태로 보관(일반적인 메시징 시스템의 메시지는 메모리 큐에 적재하고, 컨슈머가 메시지를 읽어가면 큐에서 바로 메시지를 삭제)
-
파일 시스템에 메시지를 저장하기 때문에 별다른 설정 없이도 데이터의 영속성(Persistence)가 보장된다는 것을 의미.
-
트래픽이 일시적으로 폭주해 컨슈머의 처리가 늦어지더라도 카프카의 디스크에 안전하게 보관되어 있기 때문에, 컨슈머는 메시지의 손실 없이 메시지를 가져갈 수 있음.
-
디스크가 순차적으로 저장되어 있으므로 디스크 I/O가 줄어들어 성능이 빨라짐
4. 확장성
-
카프카는 확장이 매우 용이하도록(Scale-out) 설계
-
하나의 카프카 클러스터는 3대의 브로커로 부터 시작해 수십대의 브로커로 확장 가능
-
확장 작업은 카프카 서비스의 중단 없이 온라인 상태에서 작업이 가능
-
최초 카프카 클러스터 구성시 적은 수로 시작하더라도 이후 트래픽 및 사용량 증가로 클러스터를 확장하는 작업은 매우 간단하고, 큰 부담이 없음
5. 높은 성능
-
카프카는 고성능을 유지하기 위해 내부적으로 분산 처리, 배치 처리 등 다양한 기법을 사용
-
클러스터 구조의 분산 시스템은 단일 시스템보다 성능이 좋음
-
2015년 8월 기준으로 링크드인에서는 1조개의 메시지를 생산하고 카프카를 이용하 하루에 1페타바이트 이상의 데이터를 처리하고 있음.
참고사이트
https://engkimbs.tistory.com/691
https://sugerent.tistory.com/586
참고 문헌
'Programming > Kafka' 카테고리의 다른 글
[kafka] 기본 용어 정리 (0) | 2020.04.11 |
---|---|
[kafka] 카프카의 동작 방식과 원리 (0) | 2020.04.09 |
[kafka] 링크드인과 카프카 탄생배경 (0) | 2020.04.08 |