책소개
데이터 플랫폼의 핵심 컴포넌트로 각광받고 있는, 이벤트 기반 비동기 아키텍처를 위한 고가용성 실시간 분산 스트리밍 솔루션 카프카(Kafka)의 모든 것!국내 최대 모바일 플랫폼 회사인 카카오에서 '전사 공용 카프카' 서비스를 운영하고, 데이터 파이프라인과 빅데이터 플랫폼을 구축한 저자들의 풍부한 지식, 생생한 실전 경험, 노하우가 가득 담긴 책!카프카 사용자는 물론이고 아직 카프카를 도입하지 않은 기업이나 담당자들을 대상으로, 카프카를 손쉽게 설치하고 구성하는 방법, 비동기 메시지 처리법과 함께 프로그램 개발 방법도 차근차근 익혀본다. 또한, 손쉽게 메시징 시스템을 도입할 수 있도록 카프카의 내부 디자인과 프로듀서/컨슈머의 특징을 심도 있게 다뤘다. 아울러, 카프카를 데이터 버스로 활용해서 실시간 데이터를 분석하는 방법을 여러 방면의 예를 들어 자세히 설명하고, 카프카 기반의 실시간 데이터 분석 시스템을 개발하는 과정을 자세한 설명과 함께 샘플코드도 제공하고 있어서 실시간/배치 분석 업무를 수행하는 빅데이터 분석가나 데이터 엔지니어, 이벤트 기반 방식의 비동기 시스템 개발 업무를 맡은 모든 개발자에게 도움이 될 것이다.
목차
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&A6.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장 카프카 스트림즈 API8.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 도커 버전 카프카 설치