카프카는 높은 처리량과 빠른 메세지 전송 운영 효율화를 위해 분산 시스템, 페이지 캐시, 배치 전송처리 기능으로 구현되어 있다. 각각의 기능의 특징을 알아보자.
1. 분산시스템
-
네트워크의 그룹으로 이루어진 컴퓨터들의 그룹을 의미하는 분산 시스템은 단일시스템보다 더 높은 성능을 얻을 수 있음.
-
하나의 서버에 장애가 발생하여도 다른노드가 대신 처리하면 됨
-
시스템 확장에 용이함.
2. 페이지 캐시
-
카산드라의 처리량을 높이기 위해 도입.
-
o/s 의 잔여 메모리를 이용해 디스크가 아닌 페이지 캐시를 활용하여 읽고 쓰는 활동함.
-
이러한 특징은 디스크 SATA에서도 카프카 구동이 가능
-
하지만 페이지를 서로 공유 해야하기 때문에 하나의 시스템에 카프카를 다른 어프리케이션과 함께 실행하는 것을 권장하지 않음.
-
카프카는 JVM위에 구동되는데, 기본 메모리 Heap Size는 1GB.
-
컨플루언트사의 문서에는 초당 메시지단위, 메가비트단위는 5GB면 충분하다고 나와있음. 나머지는 페이지 캐시로 사용하기를 권장.
3. 배치 전송처리
-
서버와 클라이언트 사이에서 데이터를 주고 받을때 발생하는 I/O를 줄이기 위해 배치작업으로 처리
-
작은 I/O를 묶어서 보냄으로 오버헤드를 줄일 수 있음
참고 문헌 : 카프카, 데이터 플랫폼의 최강자 실시간 비동기 스트리밍 솔루션 Kafka의 기본부터 확장 응용까지
'Programming > Kafka' 카테고리의 다른 글
[kafka] 데이터 모델 토픽 파티션 오프셋 (0) | 2020.04.14 |
---|---|
[kafka] 카프카 주키퍼 (0) | 2020.04.12 |
[kafka] 기본 용어 정리 (0) | 2020.04.11 |