아파치 카프카 쿡북 [레시피로 살펴보는 기업용 분산 메시징 시스템의 실시간 데이터 처리 활용법]
- 원서명Apache Kafka 1.0 Cookbook: Over 100 practical recipes on using distributed enterprise messaging to handle real-time data (ISBN 9781787286849)
- 지은이라울 에스트라다(Raul Estrada)
- 옮긴이최준
- ISBN : 9791161751856
- 25,000원
- 2018년 07월 31일 펴냄
- 페이퍼백 | 304쪽 | 188*235mm
- 시리즈 : acorn+PACKT, 오픈소스 프로그래밍
책 소개
소스 코드 파일은 여기에서 내려 받으실 수 있습니다.
요약
사람들이 이메일로 메시지를 교환하듯 서로 다른 시스템도 다양한 형태로 데이터를 담은 메시지를 교환한다. 오늘날 정보 기술이 발전하며 더욱 다양한 형태의 메시지가 대량으로 처리되고 있다. 특히 기업은 통합된 메시지 운영이 가능한 메시징 플랫폼인 카프카를 필요로 한다. 카프카는 고가용성에 성능도 우수하며 높은 수준의 보안을 해내어 기업의 요구 사항을 만족시킨다. 이 책은 독자가 쉽게 따라할 수 있는 레시피를 제공해서, 직접 아파치 카프카를 구성해보고 최적의 방법으로 활용하도록 돕는다.
이 책에서 다루는 내용
█ 최적화된 성능을 얻기 위한 아파치 카프카 1.0의 설치 및 설정
█ 카프카 프로듀서와 컨슈머 제작 및 구성
█ 미러링 기술을 활용해 카프카 클러스터를 효과적으로 운영
█ 컨플루언트 플랫폼과 카프카 스트림을 다루고 고가용성을 지원하는 카프카 제작
█ 갱글리아와 그래파이트 같은 도구로 카프카 모니터링
█ 일래스틱서치, 로그스태시, 아파치 하둡, 아파치 스파크 등의 도구와 카프카 통합
이 책의 대상 독자
소프트웨어 개발자, 데이터 설계와 실용적인 카프카 레시피를 찾는 데이터 엔지니어를 위한 책이다. 전반부에서는 프로그래밍을 다루는데, 아파치 카프카에 대한 사전 지식이 없는 독자들을 위한 소개다. 후반부로 갈수록 난이도가 높아진다. 후반부에서는 기존의 아파치 카프카 시스템을 향상시키거나, 현재 설치된 카프카의 구성을 보다 잘 관리하고자 하는 독자들을 위한 고급 주제를 다룬다.
이 책의 구성
1장, ‘카프카 구성하기’에서는 아파치 카프카를 시작하기 위한 기초 레시피를 설명한다. 카프카를 설치, 설정하고 실행하는 방법을 논의한다. 카프카 브로커(broker)의 기본 운영 방법도 논의한다.
2장, ‘카프카 클러스터’에서는 세 가지 유형의 클러스터 제작 방법을 다룬다. 세 가지 유형은 ‘단일 노드-단일 브로커 클러스터’, ‘단일 노드-다중 브로커 클러스터’, ‘다중 노드-다중 브로커 클러스터’다.
3장, ‘메시지 검사’에서는 엔터프라이즈 서비스 버스(ESB, Enterprise Service Bus)와 관련된 데이터 유효성의 검증 작업을 다룬다. 입력 메시지 스트림에서 일부 이벤트를 필터링하는 데이터 검증 프로그래밍을 알아본다.
4장, ‘메시지 정보 확장’에서는 ESB와 관련한 다음 작업으로 메시지 기능을 확장에 관한 내용을 다룬다. 메시지 기능 확장이란 개별 메시지를 확보하고, 메시지에서 추가 정보를 얻고, 메시지를 메시지 스트림에 포함시키는 것을 의미한다.
5장, ‘컨플루언트 플랫폼’에서는 컨플루언트 플랫폼을 사용해 카프카 시스템을 운영하고 모니터하는 방법을 보여준다. 스키마 레지스트리, 카프카 REST 프록시, 카프카 커넥트 사용 방법도 설명한다.
6장, ‘카프카 스트림’에서는 메시지 그룹 정보와 카프카 스트림을 사용하는 메시지 모음이나 구성 같은 추가 정보를 얻는 방법을 설명한다.
7장, ‘카프카 관리’에서는 카프카 클러스터를 디버깅, 테스트, 운영하는 시스템 관리자의 삶을 편리하게 하도록 카프카 저자가 개발한 명령줄 도구에 대해 이야기한다.
8장, ‘카프카 운영’에서는 카프카 클러스터에서 수행할 수 있는 다양한 운영 방법을 설명한다. 여기에서 다루는 도구는 일상적으로 쓰이지 않지만, 데브옵스(DevOps) 팀이 카프카 클러스터를 관리하는 데 도움을 준다.
9장, ‘모니터링과 보안’에서는 다양한 통계적 자료를 어떻게 표시하는지, 그리고 어떻게 그라파이트(Graphite)나 갱글리아(Ganglia) 같은 도구를 사용해 모니터할 수 있는지 이야기한다. 또한 보안에 대한 내용을 다루며 SSL 인증, SASL/커버러스 인증, SASL/plain 인증을 구현하는 방법을 알아본다.
10장, ‘써드파티 도구와의 통합’에서는 기타 실시간 데이터 처리 도구를 살펴보고 이 도구를 사용한 데이터 처리 파이프라인을 아파치 카프카로 만드는 방법을 이야기한다. 하둡, 플룸, 고블린, 일래스틱, 스파크, 스톰, 솔라(Solr), 아카, 카산드라, 미소스, 빔 등의 도구를 다룬다.
목차
목차
- 1장. 카프카 구성하기
- 소개
- 카프카 설치
- 카프카 실행
- 카프카 브로커 설정
- 카프카 토픽 설정
- 메시지 콘솔 프로듀서 생성
- 메시지 콘솔 컨슈머 생성
- 브로커 설정 구성
- 스레드와 성능 구성
- 로그 설정 구성
- 복제 설정 구성
- 주키퍼 설정 구성
- 기타 세부 파라미터 구성
- 2장. 카프카 클러스터
- 소개
- 단일 노드 - 단일 브로커 클러스터 구성: SNSB
- SNSB: 토픽, 프로듀서, 컨슈머 생성하기
- 단일 노드 - 다중 브로커 클러스터 구성: SNMB
- SNMB: 토픽, 프로듀서, 컨슈머 생성하기
- 다중 노드 - 다중 브로커 구성: MNMB
- 3장. 메시지 검사
- 소개
- 이벤트 모델링
- 프로젝트 설정
- 카프카에서 읽어오기
- 카프카에 쓰기
- ProcessingApp 실행
- 검사기 코딩
- 검사기 실행
- 4장. 메시지 정보 확장
- 소개
- 지리적 위치 추출기
- 지리적 위치 확장
- 통화 금액 추출기
- 통화 금액 확장
- 통화 금액 확장기 실행
- 이벤트 모델링
- 프로젝트 설정
- 날씨 정보 추출기 열기
- 위치별 온도 확장
- 위치별 온도 확장기 실행
- 5장. 컨플루언트 플랫폼
- 소개
- 컨플루언트 플랫폼 설치
- 카프카 운영하기
- 컨플루언트 컨트롤 센터 모니터링
- 스키마 레지스트리 사용하기
- 카프카 REST 프록시 사용하기
- 카프카 커넥트 사용하기
- 6장 카프카 스트림
- 소개
- 프로젝트 설정하기
- 스트리밍 애플리케이션 실행
- 7장. 카프카 관리
- 소개
- 컨슈머 그룹 관리
- 로그 세그먼트 덤프 받기
- 주키퍼 오프셋 가져오기
- GetOffsetShell 사용하기
- JMX 사용하기
- 미러메이커 사용하기
- 로그 프로듀서 재생
- 상태 변경 로그 통합하기
- 8장. 카프카 운영
- 소개
- 토픽의 추가와 삭제
- 메시지 토픽 수정
- 정상 종료 수행
- 리더십 조정
- 클러스터 확장
- 복제 팩터 추가
- 브로커의 해제
- 컨슈머 오프셋 위치 확인
- 9장. 모니터링과 보안
- 소개
- 서버 지표 모니터링
- 프로듀서 지표 모니터링
- 컨슈머 지표 모니터링
- 그래파이트를 사용한 모니터링
- 갱글리아를 사용한 모니터링
- SSL을 사용하는 인증 구현
- SASL/커버러스를 사용하는 인증 구현
- 10장. 써드파티 도구와의 통합
- 소개
- 플룸을 사용한 노드 간 데이터 이동
- 고블린으로 HDFS 클러스터에 기록하기
- 로그스태시로 카프카에서 일래스틱으로 데이터 이동하기
- 스파크 스트림과 카프카 연결하기
- 스톰으로 카프카에서 데이터 가져오기
- 카프카 데이터를 일래스틱으로 푸시하기
- 카프카에서 Solr 클라우드로 데이터 추가하기
- Akka로 카프카 프로듀서 제작하기
- Akka로 카프카 컨슈머 제작하기
- 카산드라에 데이터 저장하기
- 미소스에서 카프카 실행하기
- 아파치 빔으로 카프카 읽기
- 아파치 빔으로 카프카에 쓰기