Top

아파치 Kafka 따라잡기 [확장성과 고가용성을 지닌 메시지 브로커]

  • 원서명Apache Kafka (ISBN 9781782167938)
  • 지은이니샨트 가르그
  • 옮긴이양원국
  • ISBN : 9788960775756
  • 12,000원
  • 2014년 06월 30일 펴냄 (절판)
  • 페이퍼백 | 116쪽 | 188*235mm
  • 시리즈 : acorn+PACKT

판매처

  • 현재 이 도서는 구매할 수 없습니다.

책 소개

요약

아파치 카프카(Apache Kafka)는 오픈소스 메시지 브로커(message broker)로서 확장성과 고가용성을 가지고 분산 기반으로 대용량 데이터를 처리한다. 이러한 아파치 카프카를 실제로 적용하는 데 알아야 할 카프카 활용 사례와 카프카 내부 디자인에 대해 알아본다. 이를 바탕으로 브로커에 데이터를 집어넣는 생산자와 데이터를 가져오는 소비자를 직접 구현해본다. 배치 처리하는 서비스와 스트리밍 처리하는 외부 서비스에 연동하는 법을 배운 후 마지막으로 카프카를 실제 관리하기 위한 도구와 카프카와 연동할 수 있는 서드파티 도구에 대해 알아 본다.

이 책에서 다루는 내용

이 책은 예제를 직접 실행해 볼 수 있는 실전 가이드다. 단계별로 만들어진 실용 예제를 구현해 보면서 카프카에 숨겨진 진짜 힘을 이용할 수 있고, 기존 발행 구독 기반의 아키텍처에 카프카를 적용할 수 있는 든든한 기반을 쌓을 수 있다. 이 책을 통해 실용적이고 명료한 여러 가지 구현을 익힘으로써 아파치 카프카의 힘을 빠르고 수월하게 이용할 수 있다. 앞으로, 카프카 클러스터를 설정하는 데 필요한 모든 것을 배울 것이다. 서로 긴밀하게 작업하는 카프카의 기본 블록인 생산자, 소비자, 브로커에 대해 설명하고 더 어려운 문제를 해결하기 위해 설정을 변경하는 법을 알아 본다. 마지막으로 카프카가 하둡(Haddop)과 스톰(Storm) 등의 도구와 연동되는 방법도 살펴본다.

이 책의 대상 독자

이 책의 독자는 실전에서 아파치 카프카 사용에 대해 알기를 원하는 사람이다. 아파치 카프카나 비슷한 기술에 대한 사전 경험이 없는 사람을 주요 독자 대상으로 삼았다. 또한, 기업용 애플리케이션 개발자이나 기타 발행 구독 기반의 시스템을 다뤘지만, 차후 확장성 있는 솔루션으로 아파치 카프카를 도입하기를 고려하는, 빅데이터에 관심이 많은 개발자들을 위해 집필했다.

이 책의 구성

1장. 카프카 소개: 조직들이 어떤 방법으로 데이터의 진짜 가치를 깨달았는지와 데이터를 수집하고 처리하는 방법을 발전시켜온 방법을 알아본다.
2장. 카프카 설치: 카프카 0.7과 0.8을 빌드하고 설치하는 방법을 알아본다.
3장. 카프카 클러스터 설정: 단일/다중 브로커(broker)를 설정하는 데 필요한 단계를 알아본다.
4장. 카프카 디자인: 카프카의 견고한 토대를 만드는 디자인 개념을 알아본다.
5장. 생산자 작성: 기본 생산자(producer)와 메시지 파티셔닝(partition)을 이용하는 고급 레벨 자바 생산자를 작성하는 법을 알아본다.
6장. 소비자 작성: 소비자와 파티션으로부터 메시지를 소비하는 고급 레벨의 소비자를 작성하는 법을 알아본다.
7장. 카프카 연동: 실시간과 배치 처리를 다루기 위한 하둡 연동이 동작하는 방법을 알아본다.
8장. 카프카 도구: 관리 도구와 카뮈(Camus), 아파치 카멜(Apache Camel), 아마존 클라우드 등과의 연동에 대해 알아본다.

저자/역자 소개

저자 서문

이 책에서는 수백만의 메시지를 발행-구독(publisher-subscriber) 아키텍처로 소비(consume)하는 과제를 아파치 카프카로 해결할 수 있도록 아파치 카프카에 익숙해지는 방법에 대해 설명할 것이다. 카프카 프로그래밍에 대한 감을 얻어 카프카의 다양한 구현과 연동에 대해 깊이 있게 이해할 수 있는 단단한 토대를 쌓게 하는 데 목적이 있다. 아파치 카프카에 대한 설명과 더불어 카프카와 연동하는 아파치 하둡이나 스톰에 대해서도 다룬다. 단지 카프카에 대해 이해하는 것뿐만 아니라 이용하는 법을 알려줘 독자의 기술적인 기반을 넓히는 것이 목표다.

저자 소개

니샨트 가르그(Nishant Garg)

자바 엔터프라이즈 에디션(Java Enterprise Edition), 스프링(Spring), 하이버네이트(Hibernate), 하둡(Hadoop), 하이브(Hive), 플룸(Flume), 스쿱(Sqoop), 우지(Oozie), 스파크(Spark), 카프카(Kafka), 스톰(Storm), 머하웃(Mahout), 솔라/루씬(Solr/Lucene), 몽고디비(MongoDB), 카우치디비(CouchDB), HBase, 카산드라(Cassandra) 같은 NoSQL과 그린플럼(GreenPlum), 버티카(Vertica) 같은 대규모 병렬 컴퓨터(MPP, Massively Parallel Computer) 등 다양한 분야에서 13년 이상 경력을 쌓은 테크니컬 아키텍트다. 인도 필라니 BITS(Birla Institute of Technology and Science) 대학에서 소프트웨어 시스템 석사학위를 받았다. 현재 임피터스(Impetus) 사 이노베이션(innovation) 랩의 빅데이터 연구개발팀에서 일하고 있다. 유명한 IT 서비스와 금융회사에 애자일(Agile)과 스크럼(SCRUM) 같은 소프트웨어 생명주기 방법론을 적용하며 일해왔고 빅데이터 관련 기술에 대한 강의를 해왔다.

옮긴이의 말

아파치 카프카(Apache Kafka)는 2011년 링크드인(LinkedIn)이 자사에서 웹사이트가 생성하는 다양한 소스로부터 나오는 대량의 이벤트를 처리하기 위해 만들어졌다. 페이지뷰, 검색, 소셜네트워크 활동 같은 다양한 데이터 소비자가 접근해 정보를 가져오는 저장소 역할도 수행했다. 이렇게 자사에서 사용한 프로그램을 오픈소스화한 프로젝트가 바로 아파치 카프카다.
아파치 카프카 프로젝트는 같은 해인 2011년 6월에 아파치 인큐베이터 프로젝트에 등록되었고 불과 1년 만인 2012년 10월에 아파치 인큐베이터를 졸업해 아파치 탑 프로젝트로 승격되었다.
아파치 카프카는 저지연성을 가지지만, 스루풋(throughput)에 주안점을 두지 않은 액티브엠큐(ActiveMQ)와 다양한 소비자를 다룰 때 지연시간(latency)을 보장하지 못하는 플룸(Flume)과 스크라이브(Scribe) 두 솔루션 간의 큰 차이를 메우기 위해 만들어졌다. 하둡 같은 대용량 배치 처리 시스템과 스트리밍 처리를 하는 스톰에 데이터를 전달하는 중간자 역할을 할 수 있다.
이 프로젝트는 최근에 나온 빅데이터 관련 프로젝트가 그렇듯 짧은 시간 동안 많이 변화했지만, 카프카만이 가지는 고유한 특징이 있기 때문에 앞으로 계속 발전하는 프로젝트가 될 것이라고 조심스럽게 예측해본다. 다른 모든 시스템이 그렇듯 아파치 카프카 역시 만능은 아니다. 그러나 독특한 성격의 카프카의 장점을 활용해 목적에 맞게 사용한다면, 인프라 문제 해결에 열쇠가 될 수 있을 것이다.

양원국

옮긴이 소개

양원국

현재 빅데이터에 전문회사인 KT NexR에 다니며, 하둡(Hadoop) 기반 시스템 운용 및 프로비저닝 개발을 하고 있다. 검색 플랫폼과 RHive 개발을 했고, 이전 직장인 티맥스소프트에서 APM 개발을 했다

목차

목차
  • 1장 카프카 소개
  • 카프카의 필요성
  • 카프카의 사용 예
  • 요약

  • 2장 카프카 설치
  • 카프카 설치
    • 카프카 다운로드
  • 사전에 필요한 소프트웨어 설치
    • 자바 1.6 또는 이후 버전 설치
  • 카프카 빌딩
  • 요약

  • 3장 카프카 클러스터 설정
  • 단일 노드 단일 브로커 클러스터
    • 주키퍼 서버 구동
    • 카프카 브로커 시작
    • 카프카 토픽 생성
    • 메시지를 보내기 위한 생산자 구동
    • 메시지를 소비하기 위한 소비자 구동
  • 단일 노드 다중 브로커 클러스터
    • 주키퍼 구동
    • 카프카 브로커 구동
    • 카프카 토픽 생성
    • 메시지를 보내기 위한 소비자 구동
    • 메시지 소비를 위한 소비자 구동
  • 다중 노드 다중 브로커 클러스터
  • 카프카 브로커 속성 목록
  • 요약

  • 4장 카프카 디자인
  • 카프카 디자인의 핵심 토대
  • 카프카 메시지 압축
  • 카프카의 클러스터 미러링
  • 카프카 리플리케이션
  • 요약

  • 5장 생산자 작성
  • 자바 생산자 API
  • 간단한 자바 생산자
    • 클래스 임포트
    • 속성값 정의
    • 메시지를 만들고 보내기
  • 메시지 파티셔닝을 하는 단순한 자바 생성자 생성
    • 클래스 임포트
    • 속성값 정의
  • 파티셔너 클래스 구현
    • 메시지 만들고 보내기
  • 카프카 생산자 속성 목록
  • 요약

  • 6장 소비자 작성
  • 자바 소비자 API
  • 상위 레벨 소비자 API
  • 단순 소비자 API
  • 단순 상위 레벨 자바 소비자
    • 클래스 임포팅
    • 속성 정의
  • 토픽으로부터 메시지를 읽고 출력
  • 다중 파티션 토픽을 위한 멀티스레드 소비자
    • 클래스 임포트
    • 속성 정의
    • 스레드로부터 메시지를 읽고 출력
  • 카프카 소비자 속성 목록
  • 요약

  • 7장 카프카 연동
  • 스톰과 카프카 연동
    • 스톰 소개
    • 스톰과 연동
  • 하둡과 카프카의 연동
    • 하둡 소개
    • 하둡과 연동
    • 하둡 생산자
    • 하둡 소비자
  • 요약

  • 8장 카프카 도구
  • 카프카 관리 도구
    • 카프카 토픽 도구
    • 카프카 리플리케이션 도구
  • 다른 도구와 연동
  • 카프카 성능 테스팅
  • 요약

도서 오류 신고

도서 오류 신고

에이콘출판사에 관심을 가져 주셔서 고맙습니다. 도서의 오탈자 정보를 알려주시면 다음 개정판 인쇄 시 반영하겠습니다.

오탈자 정보는 다음과 같이 입력해 주시면 됩니다.

(예시) p.100 아래에서 3행 : '몇일'동안 -> 며칠동안

정오표

정오표

[p18: 이 책에 사용된 예제 코드 다운로드]
http://www.PacktPub.com에 가입하면 예제 코드를 다운로드할 수 있다. 다른 곳에서 구매한 경우에는 http://www.PacktPub.com/support를 방문해 등록하면 파일을 이메일로 직접 받을 수 있다. 에이콘출판사의 도서정보 페이지인 http://www.acornpub.co.kr/book/apache-kafka에서도 예제 코드를 다운로드할 수 있다.
->
이 책에 사용된 컬러 이미지 다운로드
이 책의 컬러 이미지 다운로드 또한 이 책에 사용된 스크린샷과 다이어그램의 컬러 이미지가 있는 PDF 파일을 제공한다. 컬러 이미지는 각 장의 내용을 더 잘 이해하는 데 도움이 될 것이다. 해당 파일은 http://www.packtpub.com/sites/default/files/downloads/7938OS_Images.pdf 경로에서 내려받을 수 있다.

2016.1.29 수정사항

[p.83: 9행]
그렇게 하지 않으면 특정 파티션은
->
그렇게 하지 않으면 특정 스레드는