kafka

카프카 공부노트/주요특징

25G 2023. 10. 19. 17:50

카프카의 주요 특징

  • 높은 처리량과 낮은 지연시간
    카프카를 선택하는 가장 큰 이유가됩니다. 기업 수준으로 커저가는 데이터 처리를 위해 굉장히 우수한 처리량과 낮은 지연시간을 지표에서 확인 할 수 있습니다.

  • 높은 확장성
    기업급의 데이터들은 아무리 뛰어난 처리량과 낮은지연시간을 가지고 있다고 해도 한계를 부딪히기 마련입니다. 그럴때 중요한것이 확장성인데 카프카는 손쉬운 확장이 가능하도록 잘 설계된 어플리케이션입니다. 기업을 운영하면서 사업이 다각화 됐을때에도 카프카는 높은 확장성이라는 장점을 발휘할 수 있습니다.

  • 고가용성
    카프카는 2013년에 클러스터 내 리플리케이션 기능이 추가되면서 고가용성이 확보됐습니다.

  • 리플리케이션?*
    참고 블로그

  • 내구성
    카프카로 메시지를 전송할때 프로듀서의 acks라는 옵션조정을 통해서 내구성을 강화 할 수 있습니다. acks=all로 사용하면 카프카로 전송되는 모든 메시지는 안전한 저장소인 카프카의 로컬디스크에 저장됩니다.

  • 개발 편의성
    카프카는 메시지를 전송하는 역할을 하는 프로듀서와 메시지를 가져오는 역할을 하는 컨슈머가 완벽하게 분리되어 동작하고 서로 영향을 주지도 받지도 않습니다. 그렇기때문에 프로듀서단을 개발하는 개발자는 프로듀서단만 개발하고 컨슈머쪽을 개발하는 개발자는 컨슈머만 개발하면 됩니다.

  • 또한* 개발편의성을 제공하기위해서 카프카에서는 카프카 커넥트와 스키마 레지스트리를 제공합니다. 스키마 레지스트리는 스키마를 정의해서 사용할 수 있도록 개발된 애플리케이션입니다. 카프카 커넥트는 프로듀서와 컨슈머를 따로 개발하지 않고도 카프카와 연동해서 소스와 싱크로 데이터를 보내고 받을수 있는 별도 애플리케이션입니다.

카프카의 데이터 흐름은 대부분 브로드캐스트 방식 그렇기때문에 데이터를 전송하는 프로듀서쪽에 많이 의지할 수 밖에 없는 구조였기때문에 이를 해결하기 위해 프로듀서와 컨슈머 간에 서로 데이터 구조를 설명할 수 있는 스키마를 등록 지정해 사용하는 스키마 레지스트리가 만들어졌습니다.