반응형

Apache Kafka 공부 18

#14 카프카 커맨드 라인 툴

🛠 Kafka 커맨드 라인 툴 정리Kafka를 운영하면서 브로커를 관리하고, 토픽이나 파티션 개수를 조정하려면 커맨드 라인 툴 (CLI) 을 능숙하게 다룰 줄 알아야 한다.사실 처음에는 GUI 관리 도구가 있으면 좋겠다고 생각했는데, CLI 명령어를 손에 익히면 실무에서 더 빠르고 효율적으로 작업할 수 있다는 걸 알게 되었다. 🎯 Kafka CLI의 중요성Kafka CLI(Command Line Interface)는 브로커 운영에 필수적인 명령을 수행할 수 있도록 도와준다.예를 들어, 새로운 토픽을 생성하거나 기존 토픽의 파티션 개수를 변경할 수 있다.CLI를 활용하면 Kafka를 직접 제어할 수 있기 때문에 자동화 스크립트에도 유용하게 활용할 수 있다. 그런데 여기서 주의해야 할 점이 있다.Ka..

Apache Kafka 공부 2025.02.17

#13 SaaS형 카프카 소개

🌐 SaaS형 아파치 카프카, 무엇이 좋고 무엇이 아쉬울까?요즘 데이터 스트리밍 플랫폼을 고민하다 보니 자연스럽게 Apache Kafka(아파치 카프카) 에 대해 공부하게 되었다. 그런데 카프카를 직접 운영하는 것보다 SaaS형 서비스가 더 효율적이라는 이야기를 많이 들었다. 과연 그럴까? SaaS형 카프카에 대해 하나씩 정리해 보려 한다.🏢 컨플루언트(Confluent)란?아파치 카프카를 만든 사람들이 오픈소스 카프카를 기반으로 더 필요한 기능들을 추가하여 만든 서비스가 바로 컨플루언트(Confluent) 다. 크게 두 가지 형태로 제공된다.☁️ 컨플루언트 클라우드 (Confluent Cloud) - SaaS완전 관리형 서비스로, AWS 같은 클라우드에 카프카 클러스터를 설치하고 운영할 수 있다.✅..

Apache Kafka 공부 2025.02.16

#12 카프카 클러스터 운영방식

🏗 카프카 클러스터 운영하기카프카 클러스터를 직접 서버에 설치하고 운영하는 과정은 쉽지 않은거 같다.각종 보안 설정, 모니터링 도구 선택 등 고려해야 할 요소가 많기 때문에 구축하면서 시행착오를 겪을거 같다.그렇다면 어떻게 하면 빠르고 안전하게 최적의 카프카 클러스터를 구축할 수 있을까? 일반적으로 온프레미스, IaaS, PaaS, SaaS 등의 방식으로 운영할 수 있으며,각 방식마다 장단점이 존재한다고한다.🏠 온프레미스 (On-Premise)사용자가 직접 전산실 서버에 설치하여 운영하는 방식 ✅ 특징기업 환경에 맞춰 하드웨어를 직접 커스터마이징할 수 있다. 초기 도입 비용과 유지보수 비용이 높다. 보안 및 네트워크 정책을 자체적으로 관리할 수 있다. ⚙ 카프카 운영 방식서버 구매 및 네트워..

Apache Kafka 공부 2025.02.16

# 퀴즈 2

아래와 같이 마크다운 형식으로 정리해드릴게요! 😊의문점을 포함해서 학습자의 시점에서 자연스럽게 풀어보았습니다. 🧐 카프카 학습 정리 – 데이터 삭제, 복제, 파티션 구조카프카를 공부하면서 몇 가지 퀴즈를 풀어봤는데, 생각보다 헷갈리는 개념들이 많았다. 이번 기회에 개념을 확실히 정리하고자 한다. 🔍 1) 컨슈머가 가져간 데이터는 파티션에서 삭제된다 (X)처음에는 컨슈머가 데이터를 가져가면 파티션에서 삭제될 거라고 생각했다. 하지만 카프카는 메시지를 저장하는 방식이 큐(Queue)와 다르다. 컨슈머가 데이터를 가져가도 파티션에서 데이터가 바로 삭제되지 않는다. 데이터는 로그 세그먼트 정책(예: 시간 기반, 크기 기반) 에 따라 삭제될 뿐, 컨슈머의 소비와는 무관하다. 즉, 여러 컨슈머가 같은 데..

Apache Kafka 공부 2025.02.16

#11 클라이언트 메타데이터와 브로커 통신

📡 클라이언트 메타데이터와 브로커 통신Kafka 클라이언트란? 🤔Kafka 클라이언트는 Kafka 클러스터와 상호작용하여 데이터를 송수신하거나 명령을 내리는 역할을 한다. 대표적으로 프로듀서(Producer) 와 컨슈머(Consumer) 가 있는데, 프로듀서는 데이터를 생산하고 컨슈머는 데이터를 소비한다.그런데 클라이언트가 Kafka 클러스터와 제대로 통신하려면 클러스터의 메타데이터(Metadata) 를 알아야 한다. 이 메타데이터를 기반으로 클라이언트는 적절한 브로커(Broker)와 통신할 수 있다.🗂️ 클라이언트와 메타데이터Kafka 클라이언트는 먼저 클러스터에 메타데이터 요청 을 보낸다. 이 요청에 대한 응답으로 Kafka 클러스터는 다음과 같은 정보를 반환한다.리더 파티션(Leader Par..

Apache Kafka 공부 2025.02.16

#10 토픽 작명 방법

🏷️ 토픽 이름 짓기 - 제약 조건과 유지보수하기 좋은 네이밍카프카에서 토픽은 데이터를 주고받는 핵심 단위다. 그런데 토픽 이름을 아무렇게나 짓다 보면 유지보수도 어렵고, 예기치 못한 문제를 마주칠 수도 있다. 그렇다면 "좋은 토픽 이름"은 어떤 기준으로 정해야 할까?❌ 토픽 이름의 제약 조건카프카에서 토픽 이름을 정할 때 몇 가지 제약이 있다. 이 조건들을 어기면 토픽이 생성되지 않거나, 경고 메시지가 뜰 수 있다.빈 문자열은 토픽 이름으로 사용할 수 없다.마침표(.) 하나 또는 마침표 두 개(..)만으로 된 이름은 불가능하다.토픽 이름의 길이는 249자 미만이어야 한다.사용 가능한 문자:영어 대문자(A-Z), 소문자(a-z), 숫자(0-9)마침표(.), 언더바(_), 하이픈(-)마침표(.)와 언더바..

Apache Kafka 공부 2025.02.16

#9 레코드

레코드란? 🧐오늘은 카프카(Kafka)의 레코드(Record)에 대해 정리해보려고 한다. 처음 카프카를 접했을 때 레코드라는 개념이 생각보다 직관적이지 않았는데, 하나씩 정리하다 보면 이해가 쉬워질 것 같다.카프카의 레코드는 크게 타임스탬프, 헤더, 메시지 키, 메시지 값, 오프셋으로 구성된다. 그런데 여기서 중요한 점은, 프로듀서는 오프셋과 타임스탬프를 직접 지정하지 않는다. 이 값들은 브로커가 데이터를 받을 때 자동으로 설정된다. 처음에는 이게 좀 의아했는데, 생각해보니 프로듀서가 직접 오프셋을 관리하면 분산 시스템에서 동기화 문제가 발생할 수 있겠다는 생각이 들었다.🤔⏳ 레코드 - 타임스탬프타임스탬프는 스트림 프로세싱을 위해 활용되는 시간 정보다.기본적으로 프로듀서가 데이터를 생성한 시간이 들어..

Apache Kafka 공부 2025.02.16

#8 토픽과 파티션

토픽과 파티션📚카프카를 처음 접하면서 토픽과 파티션의 개념이 조금 헷갈렸다. 그래서 이번에 공부하면서 정리해보았다. 1. 토픽과 파티션의 관계 🤔카프카에서 토픽은 여러 개의 파티션으로 이루어져 있다고 한다. 그런데 토픽을 생성할 때, 파티션을 몇 개 만들지에 대해 고민을 많이 하게 되는데, 사실 파티션이 여러 개로 나뉘어야만 처리 성능이 좋아진다는 점에서 중요하다. 각각의 파티션은 Queue처럼 동작하지만, 큰 차이점은 데이터를 소비해도 삭제되지 않는다는 것이다. 즉, 데이터를 계속 보관할 수 있다는 장점이 있다. 그리고, 프로듀서는 데이터를 메시지 키와 메시지 값으로 구성된 레코드 형식으로 보낸다. 이때 offset이 신규로 붙여지는데, 이 offset 덕분에 데이터를 순차적으로 쌓을 수 있다. 계..

Apache Kafka 공부 2025.02.15

#7-1 브로커 복제 - ISR

ISR(in-Sync-Replicas) 🏢Kafka에서 ISR(in-Sync-Replicas)은 리더 파티션과 팔로워 파티션이 동기화된 상태를 의미한다. 여기서 동기화(Sync)란 단순히 offset의 개수가 동일하다는 것을 뜻한다. 즉, 리더 파티션의 모든 데이터가 팔로워 파티션에 완전히 복제된 상태라는 의미다.왜 ISR이 중요할까? 🤔만약 리더 파티션과 팔로워 파티션이 ISR 상태를 유지하지 못한 채 장애가 발생하면, 심각한 문제가 생길 수 있다. 예를 들어, 새로운 리더를 선출하는 과정에서 데이터 유실이 발생할 위험이 있다.이를 방지하기 위해 Kafka는 unclean.leader.election.enable 설정을 제공한다.리더 선출 정책 ⚖️Kafka에서 리더를 선출하는 방식에는 두 가지 주..

Apache Kafka 공부 2025.02.15

#7 브로커의 역할 - 복제

브로커의 역할 - 복제 🔄카프카를 운영할 때 가장 중요한 개념 중 하나가 레플리케이션(Replication), 즉 복제다. 이것이야말로 카프카가 장애를 허용하는 시스템으로 동작할 수 있는 핵심 원리다.🔹 왜 복제가 필요할까?카프카는 여러 개의 브로커를 클러스터로 묶어서 운영한다. 그런데 만약 특정 브로커에 장애가 발생한다면? 데이터가 손실될 수도 있다. 이를 방지하기 위해 데이터를 여러 브로커에 분산해서 저장하는 것이 복제의 핵심 목적이다.카프카의 데이터 복제 단위는 파티션이다. 그런데 여기서 한 가지 헷갈렸던 점이 있었다. 나는 파티션 1에 대한 복제가 같은 토픽 내에서 이루어지는 줄 알았는데, 실제로는 다른 브로커에 존재하는 토픽의 파티션에 복제되는 것이었다. 즉, 같은 토픽이지만 다른 브로커에서..

Apache Kafka 공부 2025.02.15
반응형