본문 바로가기
+ 펴낸 책

카프카, 데이터 플랫폼의 최강자

by 책만 2018. 4. 17.

카프카, 데이터 플랫폼의 모든 것

시간 비동기 스트리밍 솔루션 

Kafka의 기본부터 확장 응용까지

고승범, 공용준 지음

432쪽 | 30,000원 2018년 4월 26일 출간 | 180*235*21 | ISBN 9791196203726

판매처 [교보문고] [YES24] [알라딘] [인터파크] [반디앤루니스전국 교보문고 매

전자책 판매처 [리디북스] [교보문고] [YES24] [알라딘] | ISBN 9791196203771 | PDF 포맷  


★ 자료실: https://github.com/onlybooks/kafka (본문에 수록된 예제파일과 설치파일)

★ 정오표: http://www.onlybook.co.kr/entry/kafka-errata

★ 독자문의: kafka-book (at) daum.net

데이터 플랫폼의 핵심 컴포넌트로 각광받고 있는, 이벤트 기반 비동기 아키텍처를 위한 고가용성 실시간 분산 스트리밍 솔루션 카프카(Kafka)의 모든 것! 국내 최대 모바일 플랫폼 회사인 카카오에서 '전사 공용 카프카' 서비스를 운영하고, 데이터 파이프라인과 빅데이터 플랫폼을 구축한 저자들의 풍부한 지식과 생생한 실전 경험, 노하우가 가득 담긴 책!

카프카 사용자는 물론이고 아직 카프카를 도입하지 않은 기업이나 담당자들을 대상으로, 카프카를 손쉽게 설치하고 구성하는 방법, 비동기 메시지 처리법과 함께 프로그램 개발 방법도 차근차근 익혀본다. 또한, 손쉽게 메시징 시스템을 도입할 수 있도록 카프카의 내부 디자인과 프로듀서/컨슈머의 특징을 심도 있게 다뤘다. 아울러, 카프카를 데이터 버스로 활용해서 실시간 데이터를 분석하는 방법을 여러 방면의 예를 들어 자세히 설명하고, 카프카 기반의 실시간 데이터 분석 시스템을 개발하는 과정을 자세한 설명과 함께 샘플코드도 제공하고 있어서 실시간/배치 분석 업무를 수행하는 빅데이터 분석가나 데이터 엔지니어, 이벤트 기반 방식의 비동기 시스템 개발 업무를 맡은 모든 개발자에게 도움이 될 것이다.

빅데이터와 머신러닝, AI 등이 IT의 트렌드로 급부상한 오늘날 카프카는 선택이 아닌 필수가 되었습니다. 아직 국내에 카프카를 제대로 다룬 책이 한 권도 없는 상황에서, 이 책은 카프카를 도입하고자 하는 기업이나 이미 카프카를 도입했지만 적절히 활용하지 못하는 실무자들에게 단비 같은 존재가 될 것입니다.

이 책의 저자는 카카오에서 전사 공용 카프카를 실제로 운영하며 얻은 경험을 바탕으로 카프카에 대한 지식과 경험을 잘 정리했습니다. 친절한 설명과 그림으로 카프카의 기초부터 실무 적용까지 무리 없이 잘 정리되어 있어서 초보자들도 쉽게 이해할 수 있고 실무를 수행하는 데 도움이 될 것입니다. 대량의 데이터 처리를 고민 중이거나 카프카를 아직 접해보지 않은 분들에게 이 책을 강력히 추천합니다.

- 강소륜 / 넷마블게임즈 인프라실 이사

클라우드, 빅데이터, 인공지능, 블록체인 등은 IT 비전문가에게도 이미 친숙해진 4차 산업혁명의 핵심 키워드가 되었습니다. 이러한 4차 산업혁명을 지원하는 IT인프라를 구축할 때 가장 근간이 되는 기술 중 하나가 실시간 데이터 처리 플랫폼이며, 그 중심에 바로 오픈소스 프로젝트 카프카가 있습니다.

이 책이 특별한 이유는 오랜 기간 동안 현업에서 직접 개발하고 운영하면서 다양한 문제를 해결해 온 저자들의 열정과 고민이 책 속에 고스란히 담겨 있기 때문입니다. 이 분야 최고 전문가들의 지식과 노하우를 쉽고 빠르게 배우길 원하는 엔지니어들에게 이 책을 추천드립니다.

- 심탁길 / CJ올리브네트웍스 빅데이터센터 상무

"카프카?" 카프카라는 말을 듣고 물음표를 던지는 독자라면 반드시 이 책을 읽어보기를 추천한다. 카프카는 흔히 빅데이터 시스템을 구성할 때만 사용하는 것으로 착각하는 경우가 많다. 카프카는 데이터 수집뿐만 아니라, 이벤트 드리븐 시스템을 통한 느슨한 구현에도 최적화되어 있어, 최근 대부분의 서비스 기업들이 적극적으로 도입해 사용하는 오픈소스 솔루션이다.

이렇게 많이 사용되는 솔루션임에도 그동안 내부 동작 원리나 분산된 환경에서의 토픽의 정합성 등을 어떻게 유지하는지 등에 대한 구체적인 자료나 설명이 부족했던 현실에서 이 책은 그야말로 가뭄 속에 단비와 같은 책이라 할 수 있다. 특히 이 책의 3장과 4장은 카프카를 운영하거나 카프카 기반으로 시스템을 구성할 때 반드시 알아야 할 내용들을 자세히 소개하고 있으므로 이 책의 2부, 특히 3, 4장만으로도  이 책을 사서 읽을 만한 가치가 충분하다.


- 김형준 / 베터코드 CTO

카프카는 고가용성, 고성능 분산 스트리밍 솔루션으로서 기존 메시징 큐와 비교해 비휘발성과 내장애성이 높아, 최근 국내외 굴지의 대기업뿐만 아니라 데이터 플랫폼의 핵심 컴포넌트로서 도입, 운영하지 않은 회사를 꼽기가 어려운 정도다. 

이 책은 현업에서 실제로 ‘전사 공용 카프카’ 서비스를 구축, 운영하고, 데이터 파이프라인과 빅데이터 플랫폼을 직접 만들어본 저자들의 실전 경험과 노하우가 풍부하게 담긴 책이다. 특히 이 책은 상세한 설치 가이드뿐만 아니라 카프카 운영 경험에서 비롯된 장애 대응 방법과 트러블슈팅, 모니터링 가이드 등이 상세하게 나와 있어 현업에서 카프카를 도입, 운영하려는 기업이나 담당자에게도 큰 도움이 될 것이다. 안정적이며 높은 성능을 발휘하는 데이터 파이프라인을 구축하고 여기서 나오는 데이터를 빠르고 정확하게 처리하는 애플리케이션을 만들려는 개발자와 아키텍트, 빅데이터 실시간 분석 처리 시스템을 구축하고자 하는 개발자 모두에게 적극 추천한다.

- 박재호 / 데일리 인텔리전스 CTO

1년 전에 이 책이 나왔더라면, 내가 카프카를 적용하는 데 그 많은 고생을 하지 않았을 것이다. 직접 카프카를 사용해서 우리나라에서 가장 많은 메시지 트랜잭션을 처리하는 일을 하고 있는 저자가 그동안 현업에서 스스로 배우고 겪은 노하우를 잘 정리한 책이다. 책의 각 페이지에는 독자의 이해를 돕기 위한 이미지와 소스 코드가 쉬운 설명과 함께 체계적으로 잘 정리되어 있다.

대용량으로 안정적인 데이터 처리를 할 수 있는 큐가 필요한 분들은 이 책으로 카프카를 접해 보길 추천한다.

- 이상민 / NHN Entertainment 기술리더, 『자바의 신』 저자

최근 들어 카프카는 느슨한 결합, 탈 중앙화, 대용량 처리, 실시간 처리, 확장 및 안정성의 키워드를 모두 수용하면서, 상용 MQ(Message Queue) 소프트웨어를 대체하고 있습니다. 과거 메시지 큐 기술이 메시징 처리 전체를 담당했던 데 반해, 카프카는 역할을 분리해 개념을 단순화했고 안정성과 확장성을 높였습니다. 또한, 카프카는 단순한 개념 덕분에 활용과 응용 범위를 넓히게 되었고, 빅데이터부터 마이크로서비스까지 거의 모든 환경에 핵심 요소로 자리 잡았습니다.

카프카는 이렇듯 쓰임새가 다양하기 때문에 실무적인 운영과 응용에 대한 노하우가 중요합니다. 지금까지 국내에서 출간된 카프카 도서는 기본 구성과 API 사용법에만 집중했다는 아쉬움이 있었습니다. 이런 의미에서 『카프카, 데이터 플랫폼의 최강자』의 출간은 더욱 반갑습니다. 실무에서 체득한 저자들의 다양한 경험을 바탕으로 기본 개념, 운영 고려사항, 모니터링, 데이터 파이프라인을 다루고, 최근에 나온 KSQL까지 포함하고 있습니다. 저자가 문서가 아닌 실무에서 익힌 기술로 집필했다는 사실이 피부로 느껴지는 책입니다. 카프카에 입문하고 실무 적용을 고려하시는 분들에게 적극 추천합니다.

- 김태완 / 한국 오라클 빅데이터 & Data Analytics팀 부장

이 책의 내용

현대 컴퓨팅 아키텍처의 가장 큰 특징은 '느슨한 결합(loosely coupled)'으로 이루어진 컴퓨팅 아키텍처라고 할 수 있다. 클라우드 시대가 본격적으로 열리면서 컴퓨팅 리소스는 더이상 영속적이지 않다. 부지불식간에 사라질 수도 있고, 자동 확장(auto-scale)에 의해 몇 배 또는 몇십 배 이상 갑자기 늘어날 수도 있다. 그렇기 때문에 서비스를 이루는 컴포넌트들은 예전처럼 '견고한 결합(strongly coupled)'으로 연결될 수 없다. 단적인 예를 하나 들자면, 현대 컴퓨팅 환경에서는 기존의 서버/클라이언트 구조를 고수해 직접 통신하게 되면, 통신을 하던 서버가 언제든 사라질 수도 있기 때문에, 근래의 컴퓨팅 통신은 직접 통신 대신 비동기 메시징(Asynchronous Messaging) 프레임워크를 기반으로 간접적으로 데이터를 주고받는 형태를 취한다.

또 다른 특징으로는 기업 내 데이터의 중앙화를 들 수 있다. 이전 세대에서는 회사의 각 서비스별로 별도의 데이터 파이프라인(ETL: 데이터 추출Extract, 변환Transform, 로드Load) 계층이나 데이터 분석용 시스템을 운영했기 때문에 회사 전체의 데이터가 파편화되어 총합적인 데이터 분석이 매우 어려웠다. 이전 시대의 서비스에서는 각 서비스의 데이터에만 기반해 분석해도 어느 정도 사용자의 만족을 끌어낼 수 있었다. 하지만 서비스들이 고도로 연결되어 있는 오늘날에는 여러 상황이 급변했다. 예를 들어, 특정 회사의 메신저 서비스를 사용하는 고객 분석을 하려면, 고객의 메신저 서비스 사용 정보뿐만 아니라 그 고객이 같은 회사에서 이용하는 블로깅, 소셜 네트워크, 사진 서비스 등의 사용 데이터를 가져와 모두 분석해야만 사용자의 만족을 끌어내는 고객 서비스 자료를 얻어낼 수 있다.

과거에는 많은 서비스에서 생성되는 모든 이벤트를 모았을 때 이 부하를 견딜 만한 서비스 버스 시스템(Service Bus System)이 전혀 없었기 때문에 어려운 일이었지만, 최근에는 강력한 메시지 처리 성능(High Throughput)과 빠른 수평확장성(Scale-out), 고장감내성(Fault-torelance)에 기반한 이벤트 버스 애플리케이션이기도 한 카프카의 도입으로 만족할 만한 수준의 분석 기술이 가능해진 것이다. 따라서 오늘날 데이터 분석을 중점에 둔 대규모 회사를 중심으로 카프카를 전격 도입해 중앙 데이터 파이프라인으로 매우 중요하게 사용하고 있는 회사들이 속속 늘어나고 있다.

카프카는 전통적인 메시지 시스템으로서 메시징 처리뿐만 아니라, 사용자의 웹 사이트 활동 추적 파이프라인으로 활용하고 애플리케이션의 통계를 집계해 모니터링 데이터로 사용한다. 그리고 예전에는 데이터가 필요하면, 데이터를 관장하는 조직에 요청하고 기다리는 작업을 수없이 반복함으로써 데이터 분석에 걸리는 시간이 늘고 효율도 떨어졌지만, 카프카를 사용함으로써 이벤트 소싱과 같이 시간순으로 발생하는 이벤트를 카프카라는 데이터 버스에 저장해서, 필요한 조직이나 인력이 이 데이터를 필요한 때에 언제든 즉시 활용할 수 있도록 데이터 분석 환경이 빠르게 바뀌고 있다.

아파치 카프카는 이처럼 비동기 통신 방식을 매우 큰 규모로, 아주 빠르게 처리할 수 있게 개발된 애플리케이션이다. 2011년 초 세상에 공개된 이후, 현재 넷플릭스, 링크드인, 에어비앤비, 마이크로소프트, 우버, 카카오, 라인과 같이 사용자의 데이터를 심층적으로 실시간 분석해서 사용해야 하는 수많은 기업에서 비동기 전용 프레임워크로 도입해 사용하고 있다.

단순한 메시징 큐 서비스를 뛰어넘어 기업 내 핵심 플랫폼 중 하나로서 카프카를 도입하는 회사가 속속 늘어나고 있는 이 시점에서, 카프카를 이해하길 원하고 카프카를 활용한 비동기 시스템 구성과 데이터 파이프라인을 만들고 싶어하는 분들에게 이 책이 큰 도움이 되길 바란다.


이 책의 구성

1부, 카프카를 시작하며

'1장, 카프카 소개'에서는 카프카가 탄생할 당시 링크드인의 상황을 통해 데이터 처리 시스템의 변화를 알아보면서 카프카의 역사를 살펴본다. 또한, 메시징 시스템의 기본적인 동작 방식과 카프카의 특징도 자세히 알아본다.

'2장, 카프카 설치'에서는 대표적인 분산 애플리케이션인 카프카를 위한 안정적인 코디네이션 애플리케이션인 주키퍼에 대해 자세히 알아보고 주키퍼와 카프카의 관계를 살펴본다. 어느 책에서도 자세히 다루지 않아 사용자들이 가장 어려워하는 주키퍼 설치 과정을 그림과 코드와 함께 설명하고 카프카를 설치하고 실행, 상태 확인하는 과정까지 단계별로 자세히 설명한다.


2부, 기본 개념과 운영 가이드

'3장, 카프카 디자인'에서는 분산 시스템, 페이지 캐시, 배치 처리로 대표되는 카프카의 특징과 함께 고성능, 고가용성으로 대변되는 카프카 리플리케이션의 개념, 리더와 팔로워의 역할을 다룬다. 또한 카프카에서 사용하는 필수 용어를 알아보고 카프카에서 사용하는 주키퍼의 지노드에 대해 알아본다.

'4장, 카프카 프로듀서'에서는 프로듀서의 주요 옵션을 알아보고, 콘솔 프로듀서, 자바와 파이썬 언어를 이용한 프로듀서 예제 코드를 실행해보고, 메시지 전송 방법으로서 동기 전송과 비동기 전송 방법에 대해 알아본다. 그 외에도 프로듀서의 옵션에 따라 손실 없이 메시지를 전송하는 방법도 자세히 살펴본다.

'5장, 카프카 컨슈머'에서는 컨슈머의 주요 옵션을 알아보고, 간단한 컨슈머를 직접 구현해보며 파티션 개수에 따라 메시지를 가져올 때의 주의사항과 자동 커밋, 수동 커밋과 오프셋에 대한 내용을 다룬다.

'6장, 카프카 운영 가이드'에서는 카프카를 운영하면서 반드시 알아둬야 하는 필수 카프카 명령어들과 카프카 모니터링 방법에 대해 자세히 살펴보고, 카프카를 좀 더 손쉽게 관리할 수 있는 GUI 관리도구인 카프카 매니저의 설치와 활용 방법도 알아본다. 카프카 운영에 대해 자주 묻는 질문과 답변도 정리해 실었다.


3부, 카프카의 확장과 응용

'7장, 카프카 활용'에서는 최근 많이 사용되고 있는 엘라스틱서치(Elasticsearch), 키바나(Kibana), 파일비트(Filebeat) 등을 활용해 실제로 메시지를 보내고, 가져오며, 저장한 후, 확인하는 방법까지 실제 예제를 통해 배워보며 아파치 나이파이(NiFi)를 이용해 데이터 파이프라인을 구성하는 예제까지 다룬다.

'8장 카프카 스트림즈 API'에서는 스트림 프로세싱의 개념을 알아보고, 스파크나 스톰과 같은 별도의 스트리밍 엔진 없이도 카프카를 이용해 실시간 분석을 수행할 수 있는 방법을 실전 예제와 함께 배워본다. 또한, 카프카 스트림즈 API를 이용해 파이프, 행 분리, 단어 빈도수 세기 프로그램도 만들어본다.

'9장, KSQL을 이용한 스트리밍 처리'에서는 KSQL의 등장 배경과 KSQL 아키텍처에 대해 자세히 알아보고, 별도의 앱을 개발하지 않고도 KSQL의 간단한 쿼리문만으로도 실시간 스트리밍 데이터로 다양한 분석이 가능한, KSQL을 이용한 스트림 분석 방법을 살펴본다.

'10장, 그 밖의 클라우드 기반 메시징 서비스'에서는 카프카를 사용하기 어려운 환경이나 직접 메시징 서비스를 운영하기 어려운 회사에서 카프카의 대안으로, 클라우드 기반의 메시징 서비스를 활용해볼 수 있도록 각 서비스의 개요, 연동, 사용 방법 등을 알아본다. 마지막으로, 카프카와 여타 클라우드 기반 메시징 서비스를 비교해본다.


'부록, 도커를 이용한 카프카 설치'에서는 카프카를 서버에 직접 설치하지 않고도 사용할 수 있는 방법으로, 최근 인기가 높은 도커(Docker)를 이용한 카프카 설치 방법을 리눅스, 맥, 윈도우 버전별로 살펴본다.


이 책의 독자 대상

■ 카프카를 배우고자 하는 초보자부터 카프카를 직접 운영하는 관리자

 데이터 표준화와 실시간 처리에 대해 고민하는 개발자

 이벤트 소싱을 활용한 데이터 처리를 활용하려는 개발자

 효율적으로 데이터를 수집하고 처리, 분석하기를 원하는 개발자

 실시간 데이터 파이프라인을 구축하고 애플리케이션을 개발하는 아키텍트와 개발자

 이벤트 기반 방식의 비동기 시스템 개발 업무를 맡은 모든 개발자


이 책의 특징

 카프카의 탄생 배경과 동작 원리

 주키퍼와 카프카 설치 및 클러스터 구성에 대한 자세한 설명

 자바와 파이썬을 이용한 카프카 프로듀서와 컨슈머의 예제 코드와 활용

 카프카 운영에 필요한 주요 명령어 설명

 주키퍼와 카프카의 노드 추가와 스케일 아웃 가이드

 편리한 GUI 도구인 카프카 매니저의 설치와 활용

 이해하기 쉽게 그림으로 설명하는 주요 카프카 아키텍처

 카프카를 활용한 실시간 스트림 분석 완벽 가이드

 엘라스틱서치와 아파치 나이파이 등을 활용한 데이터 파이프라인 구성 예제


지은이 

고승범

현재 카카오에 재직 중인 시스템 엔지니어로서 카카오와 관련된 여러 서비스를 지원하며 전사 공용 카프카와 래빗엠큐를 운영하고 있다. 새로운 것에 호기심이 많은 편이며 열심히 노력하는 엔지니어다. 팝잇(Popit.kr) 사이트의 저자로 활동 중이며 카프카 관련 연재 글을 연재하고 있다.

수년 전부터 카카오에서는 각 서비스 부서별로 카프카를 데이터 파이프라인으로 사용하기 시작했습니다. 그러던 중 제가 속한 인프라팀에도 특정 서비스용 카프카 운영 제안이 들어왔고, '운명적으로' 순순히 제안을 수락한 저는 본격적으로 카프카 연구와 독학을 시작했습니다. 하지만 당시 인터넷 검색으로 찾을 수 있는 내용은 너무나 단순한 것들뿐이었고 대부분은 설치 과정이나 퀵스타트 가이드뿐이었습니다. 그렇게 카프카를 직접 하나씩 알아가며 실무에 적용하다 보니 고성능 카프카의 매력에 흠뻑 빠지게 되었습니다. 단순하게 팀 내에서만 카프카를 운영할 게 아니라, 사내에 부서별로 분산된 카프카를 통합하는 '전사 공용 카프카' 서비스를 운영하면 어떨까 하는 생각이 문득 들었고, 여러 주위 분들의 지원과 격려 속에 곧 실행에 옮겼습니다.

그렇게 혼자 카프카를 공부하고 현업에서 운영하면서 쌓아온 지식과 경험을 다른 개발자들과 함께 공유하면 좋을 것 같다는 생각이 들던 차에 동료의 추천으로 지식 공유 사이트인 팝잇(popit.kr)에 카프카 연재 글을 기고하게 되었고 이렇게 한 권의 책까지 쓰게 되었습니다. 

 

공용준

국내 최대 메신저 회사에서 클라우드 서비스 개발 리딩을 맡고 있으며, 데이터 센터 자동화, 프라이빗/퍼블릭 클라우드 서비스와 그에 필요한 기술을 연구, 개발해서 실제 서비스에 적용하고 있다. 2015년에는 캐나다 밴쿠버에서 열린 오픈스택 서밋에서 국내 개발자 중 최초로 ‘SDN without SDN’이라는 제목으로 발표했고, 2016년(도쿄)과 2017년(몬트리얼) Netdev 컨퍼런스에서 역시 국내 최초로 확장가능한 컨테이너 네트워크에 대해 발표했다. 한국 데이터베이스 진흥원 자문위원, 클라우드컴퓨팅조합에서 멘토로도 활동 중이다.

현대의 컴퓨팅 아키텍처 디자인에서 가장 중요한 부분을 꼽으라면 아무래도 데이터 파이프라인이라고 하겠습니다. 여러 가상 리소스에서 나오는 데이터와, 이 리소스가 제공하는 서비스에서 생성되는 사용자의 활동 정보(클릭 수, 체류 시간, 장바구니, 구매 정보, 구매 시간 등)를 한곳으로 모아서 적절히 가공한 다음 사용자에게 적절한 정보를 제공하는 일은 꼭 요즘 유행하는 클라우드 플랫폼이 아니더라도 아주 중요한 일임에 틀림없습니다. 수년 동안 데이터 플랫폼을 만들면서 느꼈던 가장 어려운 점이라면, 매우 많은 데이터를 아주 민첩하게 받아들일 수 있고 고장감내성까지 지닌 소프트웨어 플랫폼을 만드는 일이었습니다. 파이프라이닝에서 일종의 척추 부분을 만드는 일이죠. 이런 목적의 솔루션을 이전에는 주키퍼만으로 만들었다가 성능이 기대에 미치지 못해 고민을 하고 있었는데, 카프카라는 오픈소스 솔루션을 알고 나서부터는 이 데이터 파이프라인을 만드는 일이 무척 쉬워졌습니다. 그때의 경험을 독자들과 함께 나누기 위해 이 책을 쓰게 되었습니다.

인공지능이든 자율주행차든 알고리즘으로 결정을 내리는 대부분의 장치는 외부의 정보를 모아서(Sense) 이 정보를 분석해 판단하고(Plan) 판단을 적용하는(Act) 일련의 과정으로 이어지는 흐름이 있습니다. 이 책은 특히, 데이터를 모으고 약간의 분석도 할 수 있도록 Sense-Plan 부분에 집중해서 쓰고자 했습니다. 클라우드상에서 데이터 분석을 통한 Plan-Act 부분이 궁금하다면 제 책 『클라우드 API를 활용한 빅데이터 분석』(에이콘출판, 2015)을 읽어 보시기를 추천합니다. 


차례

1부 카프카를 시작하며
1장 카프카란 무엇인가
1.1 카프카의 탄생 배경
1.2 카프카의 동작 방식과 원리
1.3 카프카의 특징
1.4 카프카의 확장과 발전
1.5 정리

2장 카프카와 주키퍼 설치
2.1 카프카 관리를 위한 주키퍼
2.2 주키퍼 설치
__2.2.1 주키퍼 다운로드
__2.2.2 주키퍼 실행
2.3 카프카 설치
__2.3.1 카프카 다운로드
__2.3.2 카프카 환경설정
__2.3.3 카프카 실행
2.4 카프카 상태 확인
__2.4.1 TCP 포트 확인
__2.4.2 주키퍼 지노드를 이용한 카프카 정보 확인
__2.4.3 카프카 로그 확인
2.5 카프카 시작하기
2.6 정리

2부 기본 개념과 운영 가이드
3장 카프카 디자인
3.1 카프카 디자인의 특징
__3.1.1 분산 시스템
__3.1.2 페이지 캐시
__3.1.3 배치 처리
3.2 카프카 데이터 모델
__3.2.1 토픽의 이해
__3.2.2 파티션의 이해
__3.2.3 오프셋과 메시지 순서
3.3 카프카의 고가용성과 리플리케이션
__3.3.1 리플리케이션 팩터와 리더, 팔로워의 역할
__3.3.2 리더와 팔로워의 관리
3.4 모든 브로커가 다운된다면
3.5 카프카에서 사용하는 주키퍼 지노드 역할
3.6 정리

4장 카프카 프로듀서
4.1 콘솔 프로듀서로 메시지 보내기
4.2 자바와 파이썬을 이용한 프로듀서
__4.2.1 메시지를 보내고 확인하지 않기
__4.2.2 동기 전송
__4.2.3 비동기 전송
4.3 프로듀서 활용 예제
4.4 프로듀서 주요 옵션
4.5 메시지 전송 방법
__4.5.1 메시지 손실 가능성이 높지만 빠른 전송이 필요한 경우
__4.5.1 메시지 손실 가능성이 적고, 적당한 속도의 전송이 필요한 경우
__4.5.2 전송 속도는 느리지만, 메시지 손실이 없어야 하는 경우
4.6 정리

5장 카프카 컨슈머
5.1 컨슈머 주요 옵션
5.2 콘솔 컨슈머로 메시지 가져오기
5.3 자바와 파이썬을 이용한 컨슈머
5.4 파티션과 메시지 순서
__5.4.1 파티션3개로 구성한 peter-01토픽과 메시지 순서
__5.4.2 파티션1개로 구성한 peter-02토픽과 메시지 순서
5.5 컨슈머 그룹
5.6 커밋과 오프셋
__5.6.1 자동 커밋
__5.6.2 수동 커밋
__5.6.3 특정 파티션 할당
__5.6.4 특정 오프셋부터 메시지 가져오기
5.7 정리

6장 카프카 운영 가이드
6.1 필수 카프카 명령어
__6.1.1 토픽 생성
__6.1.2 토픽 리스트 확인
__6.1.3 토픽 상세보기
__6.1.4 토픽 설정 변경
__6.1.5 토픽의 파티션 수 변경
__6.1.6 토픽의 리플리케이션 팩터 변경
__6.1.7 컨슈머 그룹 리스트 확인
__6.1.8 컨슈머 상태와 오프셋 확인
6.2 주키퍼 스케일 아웃
6.3 카프카 스케일 아웃
6.4 카프카 모니터링
__6.4.1 카프카 JMX 설정 방법
__6.4.2 JMX 모니터링 지표
6.5 카프카 매니저
__6.5.1 카프카 매니저 설치
__6.5.2 카프카 클러스터 등록
__6.5.3 카프카 매니저 메뉴 설명
6.6 카프카 운영에 대한 Q&A
6.7 정리

3부 카프카의 확장과 응용
7장 카프카를 활용한 데이터 파이프라인 구축
7.1 카프카를 활용한 데이터 흐름도
7.2 파일비트를 이용한 메시지 전송
__7.2.1 파일비트 설치
__7.2.2 파일비트 설정
__7.2.3 카프카 토픽의 메시지 유입 확인
7.3 나이파이를 이용해 메시지 가져오기
__7.3.1 나이파이 설치
__7.3.2 나이파이 설정
__7.3.3 나이파이를 이용한 컨슈머 설정
7.4 실시간 분석을 위해 엘라스틱서치에 메시지 저장
__7.4.1 엘라스틱서치 설치
__7.4.2 엘라스틱서치 설정
__7.4.3 나이파이를 이용해 엘라스틱서치로 데이터 전송
7.5 키바나를 이용해 엘라스틱서치에 저장된 데이터 확인
__7.5.1 키바나 설치
__7.5.2 키바나 설정
7.6 현재의 토픽을 이용해 새로운 토픽으로 메시지 재생산
__7.6.1 나이파이를 이용한 카프카 컨슈머 추가
__7.6.2 나이파이를 이용한 토픽별 라우팅 작업
7.7 정리

8장 카프카 스트림즈 API
8.1 스트림 프로세싱 기초
__8.1.1 스트림 프로세싱과 배치 프로세싱
__8.1.2 상태 기반과 무상태 스트림 처리
8.2 카프카 스트림즈
__8.2.1 카프카 스트림즈의 특징과 개념
__8.2.2 카프카 스트림즈 아키텍처
8.3 카프카 스트림즈를 위한 환경설정
8.4 파이프 예제 프로그램 만들기
8.5 행 분리 예제 프로그램 만들기
8.6 단어 빈도수 세기 예제 프로그램 만들기
8.7 정리

9장 카프카 SQL을 이용한 스트리밍 처리
9.1 KSQL의 등장 배경
9.2 KSQL과 카파 아키텍처
9.3 KSQL 아키텍처
__9.3.1 KSQL 서버
__9.3.2 KSQL 클라이언트
9.4 도커를 이용한 KSQL 클러스터 설치
9.5 KSQL을 이용한 스트림 분석
__9.5.1 데이터 준비
__9.5.2 기본 스트림과 테이블 생성
__9.5.3 쿼리를 이용한 새로운 스트림과 테이블 생성
9.6 정리

10장 그 밖의 클라우드 기반 메시징 서비스
10.1 구글의 펍/섭 서비스 소개
10.2 구글의 펍/섭 서비스 연동
__10.2.1 구글 SDK 설치
__10.2.2 구글 펍/섭 CLI로 토픽 사용
10.3 펍/섭 파이썬 SDK 사용하기
__10.3.1 펍/섭 파이썬 라이브러리 설치
__10.3.2 구글 서비스 계정 인증정보 생성
__10.3.3 파이썬 SDK 사용하기
10.4 아마존 키네시스 서비스 소개
10.5 아마존 키네시스 연동
__10.5.1 아마존 CLI 설치
__10.5.2 아마존 CLI로 키네시스 사용하기
10.6 아마존 키네시스 자바 SDK 사용하기
__10.6.1 컨슈머 코드 예제
__10.6.2 프로듀서 코드 예제
10.7 카프카와 클라우드 서비스와의 비교
10.8 정리

부록 도커를 이용한 카프카 설치
A.1 도커 설치
__A.1.1 리눅스 버전 도커 설치
__A.1.2 맥 버전 도커 설치
__A.1.3 윈도우 버전 도커 설치
A.2 도커 버전 카프카 설치




댓글