Programming/Kafka

[kafka] 카프카 디자인

bisi 2020. 4. 13. 22:09

카프카는 높은 처리량과 빠른 메세지 전송 운영 효율화를 위해 분산 시스템, 페이지 캐시, 배치 전송처리 기능으로 구현되어 있다. 각각의 기능의 특징을 알아보자.

 

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