
오늘은 카프카 커맨드 라인 툴에 대해 알아보려고 합니다. 카프카에서 제공하는 카프카 커맨드 라인 툴(command-line tool)들은 카프카를 운영할 때 가장 많이 접하는 도구입니다. 그러니 잘 알아두어 봅시다. 커맨드 라인 툴을 통해 카프카 브로커 운영에 필요한 다양한 명령을 내릴 수 있습니다. 카프카 클라이언트 애플리케이션을 운영할 때는 카프카 클러스터와 연동하여 데이터를 주고받는 것도 중요하지만 토픽이나 파티션 개수 변경과 같은 명령을 실행해야 하는 경우도 자주 발생합니다. 그렇기 때문에 카프카 커맨드 라인 툴과 각 툴별 옵션에 대해 알고 있어야 합니다. 카프카를 로컬에 설치하면 다양한 shell script를 제공하게 됩니다. 그 종류에 대해 조금 살펴 봅시다. 1. kafka-topics.s..

오늘은 카프카 클러스터를 운영하는 방법에 대해 알아보려고 합니다. 저는 회사에서 사용하기 때문에 설치할 일이 필요하진 않지만 그래도 어떤 방법들이 존재하는지 알아보도록 하겠습니다. 1. 카프카 클러스터 운영 방법 아파치 카프카 클러스터를 서버에 직접 설치하고 운영하는 것은 가장 전통적이고 기본적인 방법입니다. 이 방법으로 각종 설정을 직접 컨트롤하여 세부적인 서버 설정을 통해 최고의 성능으로 최적의 클러스터를 활용할 수 있습니다. 그러나 그만큼 최적화된 카프카 클러스터를 사용하기 위해서는 노하우가 필요하기 때문에 수많은 시행착오를 거쳐야 합니다. 특히 각종 보안 설정이나 모니터링 도구를 선택하고 설치, 운영할 때는 수많은 선택지 때문에 어려움을 겪을 수도 있습니다. 이러한 운영상 시행착오를 줄이면서 최고..

오늘은 지난 시간에 이어 카프카 생태계에 대해 알아봅시다. 다양한 툴들이 하는 일과 개념에 대해 파악해 봅시다. 우선 카프카를 운영할 때 가장 중요한 개념이라고 할 수 있는 복제에 대해 먼저 알아봅시다. 1. 브로커의 역할 - 복제(Repliction) 데이터 복제(rpelication)는 카프카를 장애 허용 시스템(fault tolerant system)으로 동작하도록 하는 원동력입니다. 복제의 이유는 클러스터로 묶인 브로커 중 일부에 장애가 발생하더라도 데이터를 유실하지 않고 안전하게 사용하기 위함입니다. 카프카의 데이터 복제는 파티션 단위로 이루어집니다. 토픽을 생성할 때 파티션의 복제 개수(replicaton factor)도 같이 설정되는데 직접 옵션을 선택하지 않으면 브로커에 설정된 옵션 값을 ..

오늘은 카프카 생태계에 대해 알아보려고 합니다. 카프카의 구조를 이해해야 개발을 할 때 사용할 수 있을 테니 자세히 알아봅시다. 1. 카프카 생태계 카프카 생태계는 아래 그림으로 표현할 수 있습니다. 기본적으로 카프카 클러스터를 중심으로 토픽이 각각의 목적에 맞게 생성이 됩니다. 데이터를 넣는 역할을 하는 것이 카프카 프로듀서 입니다. 프로듀서가 넣은 데이터는 토픽에 들어가게 되고, 토픽을 바탕으로 데이터를 가져가는 것은 컨슈머입니다. 스트림즈는 프로세싱을 통해 토픽에 있는 데이터를 처리하여 다시 토픽에 저장하는 것입니다. 커넥트는 데이터 파이프라인을 운영하는 가장 핵심적인 툴 중 하나입니다. 소스 커넥스는 프로듀서 역할, 싱크 커넥트는 컨슈머 역할이라고 보면 됩니다. 특정 데이터 베이스가 소스 애플리케..

회사에서 사용하는 기술을 하나씩 배워가며, 이번달은 Kafka 인프런 강의를 수강 신청했습니다. 강의를 들으면서 공부하며 추후 개발을 위해 필요한 kafka 지식을 알아보도록 하겠습니다. 1. 카프카(Kafka)란? 카프카는 분산 이벤트 스트리밍 플랫폼으로서 현대 IT 기업은 대부분 사용하고 있다고 볼 수 있습니다. 링크드인(LinkedIn)에서 파편화된 데이터 수집 및 분배 아키텍처를 운영하는데 큰 어려움을 겪고 만든 것입니다. 데이터를 생성하고 적재하기 위해서는 데이터를 생성하는 소스 애플리케이션과 데이터가 최종 적재되는 타깃 애플리케이션을 연결해야 합니다. 아키텍쳐가 점점 거대해지고 소스 애플리케이션과 타깃 애플리케이션의 개수가 점점 많아지면서 데이터를 전송하는 라인이 기하급수적으로 복잡해지기 시작..