이미지 검색을 사용해 보세요
검색창 이전화면 이전화면
최근 검색어
인기 검색어

소득공제
주키퍼 ZooKeeper
고가용성 서버를 위한 분산 프로세스 코디네이션
베스트
IT 모바일 top100 2주
가격
28,000
10 25,200
YES포인트?
1,400원 (5%)
5만원 이상 구매 시 2천원 추가 적립
결제혜택
카드/간편결제 혜택을 확인하세요

이미 소장하고 있다면 판매해 보세요.

  •  해외배송 가능?
  •  문화비소득공제 가능

에이콘 클라우드 컴퓨팅

책소개

목차

1부 주키퍼의 개념과 기본
1장 소개
__주키퍼의 역할
__주키퍼로 인해 달라진 것들
__주키퍼의 역할이 아닌 일들
__아파치 프로젝트
__주키퍼를 이용한 분산 시스템 구성
__예제: 마스터 워커 애플리케이션
__마스터 결함
__워커 결함
__통신 결함
__작업 요약
__분산 코디네이션이 어려운 이유
__주키퍼의 성공과 주의 사항

2장 주키퍼와 첫 만남
__주키퍼 기본
__API 개요
__Znode의 다양한 모드
__와치와 알림
__버전
__주키퍼 아키텍처
__주키퍼 쿼럼
__세션
__주키퍼 시작하기
__첫 번째 주키퍼 세션
__상태와 세션의 생명주기
__주키퍼 쿼럼
__기본 요소 구현: 주키퍼를 이용한 락
__마스터 워커 예제 구현
__마스터 역할
__워커, 작업, 할당
__워커 역할
__클라이언트 역할
__결론

2부 주키퍼 프로그래밍
3장 주키퍼 API 시작
__주키퍼 클래스패스 설정
__주키퍼 세션 생성
__Watcher 구현
__Watcher 예제 실행
__마스터십 획득
__비동기로 마스터십 획득
__메타데이터 설정
__워커 등록
__작업 큐
__관리 클라이언트
__결론

4장 상태 변경
__일회성 트리거
__일회성 이벤트 트리거를 놓칠 수 있을까?
__와치를 설정하는 좀 더 구체적인 방법
__공통 패턴
__마스터-워커 예제
__멤버십 변경
__워커 목록 변경을 위한 마스터 대기
__새로운 작업 할당을 위한 마스터 대기
__새로운 작업 할당을 위한 워커 대기
__작업 실행 결과를 위한 클라이언트 대기
__또 다른 방법: 멀티옵
__명시적인 캐시관리의 대안으로써 와치
__순서 보장
__쓰기 순서
__읽기 순서
__알림 순서
__무리 효과와 와치의 확장성
__결론

5장 장애 처리
__복구 가능한 장애
__Disconnected 이벤트와 기존에 존재하던 와치
__복구불능 장애
__리더 선출과 외부 자원
__결론

6장 주키퍼 사용자 위험 부담 원칙
__ACL 사용
__내장된 인증 체계들
__SASL과 커베로스
__새로운 체계 추가
__세션 복구
__znode가 재생성되면 버전은 초기화된다
__sync 호출
__순서 보장
__연결이 끊겼을 때의 순서
__동기 API와 멀티스레드 상황의 순서
__동기와 비동기 호출이 섞여 있는 경우의 순서
__데이터와 자식 수의 제한
__주키퍼 서버 임베딩
__결론

7장 C 클라이언트
__개발 환경 설정
__세션 시작
__마스터 부트스트랩
__리더십
__태스크 할당
__멀티스레드 대 싱글스레드 클라이언트
__결론

8장 큐레이터: 주키퍼에 대한 고수준API
__큐레이터 클라이언트
__플루언트 API
__리스너
__큐레이터에서 상태 변경
__몇 가지 특이사항
__레시피
__리더 래치
__리더 선출
__자식 캐시
__결론

3부 주키퍼 관리
9장 주키퍼의 내부 구조
__요청, 트랜잭션, 식별자
__리더 선출
__잽: 상태 변경사항 브로드캐스팅
__옵저버
__서버의 기본 구성
__단독 서버
__리더 서버
__팔로워 서버와 옵저버 서버
__로컬 저장소
__로그와 디스크 사용
__스냅샷
__서버와 세션
__서버와 와치
__클라이언트
__직렬화
__결론

10장 주키퍼 운영
__주키퍼 서버 설정
__기본 설정
__저장소 설정
__네트워크 설정
__클러스터 설정
__인증과 권한 부여 옵션
__안전하지 않은 옵션
__로깅
__전용 자원
__주키퍼 앙상블 설정
__과반수 규칙
__설정 가능한 쿼럼
__옵저버
__재설정
__클라이언트 연결 문자열 관리
__쿼터
__멀티테넌시
__파일 시스템 레이아웃과 형식
__트랜잭션 로그
__스냅샷
__에퍽 파일
__저장된 주키퍼 데이터의 사용
__포-레터 단어
__JMX 모니터링
__원격 연결
__도구
__결론

저자 소개

저자 : 플라비오 융케이라 (Flavio Junqueira)
영국 캠브릿지에 있는 마이크로소프트 연구소의 연구원이다. 샌디에고 캘리포니아 대학에서 컴퓨터 과학 박사 학위를 받았으며, 분산 알고리즘, 동시성, 확장성 등을 포함해 분산 시스템의 다양한 측면에 관심이 있다. 또한 아파치 주키퍼(PMC 의장 및 커미터)와 아파치 북키퍼(BookKeeper)(커미터) 같은 아파치 프로젝트의 적극적인 공헌자다. 여가 시간에는 주로 잠을 잔다.
저자 : 벤자민 리드(Benjamin Reed)
페이스북에서 일하는 소프트웨어 엔지니어로서 작은 주제들을 다루는 일을 하고 있다. 이전에는 야후! 연구소에서 (큰 주제를 다루는) 책임 연구원이었고 IBM 알마덴 연구소의 (큰 주제와 작은 주제를 다루는) 연구원이었다. 산타크루즈 캘리포니아 대학에서 컴퓨터 과학 박사 학위를 받았으며, 분산 컴퓨팅, 빅데이터 처리, 분산 저장소, 시스템 관리, 임베디드 프레임워크 분야에서 일했다. 하둡과 리눅스 같은 여러 가지 오픈소스 프로젝트에도 참여했다. 아파치 재단이 후원하는 피그(Pig), 주키퍼, 북키퍼 프로젝트를 시작하는 데 도움을 주었다.

품목정보

발행일
2014년 08월 29일
쪽수, 무게, 크기
312쪽 | 802g | 188*245*18mm
ISBN13
9788960775978

출판사 리뷰

★ 이 책에서 다루는 내용 ★

코디네이션 기능 없이 동작하는 분산 애플리케이션을 구성하는 것은 어렵다. 이 책에서는 여러분이 애플리케이션의 로직에 집중할 수 있도록 아파치 주키퍼가 도움을 주는 분산 시스템 관리에 대한 실용적인 방법을 제시한다. 물론 주키퍼를 사용하더라도 코디네이션 작업을 구현하는 것은 쉽지 않다. 그렇지만 이 책에서는 여러분이 쉽게 이해할 수 있도록 훌륭한 예제를 제공하며, 주키퍼를 사용하면서 개발자와 관리자 모두가 인지해야 하는 주의사항에 대해 짚어준다.

주키퍼 컨트리뷰터인 플라비오 융케이라와 벤자민 리드는 분산 시스템의 원리에 대해 소개하고 주키퍼 프로그래밍 테크닉과 주키퍼 서버를 관리하는 데 필요한 정보를 세 개의 부로 나누어 제공한다.

■ 주키퍼가 일반적인 코디네이션 작업을 해결하는 방법에 대한 학습
■ 주키퍼 API의 자바와 C 구현 방법과 차이점 비교
■ 주키퍼 상태 변화를 추적하고 상태 변화에 반응하는 메소드 사용
■ 네트워크 장애, 애플리케이션 프로세스 장애, 주키퍼 자체의 장애를 처리하는 방법
■ 주키퍼에서 어려운 부분인 동시성, 순서, 설정을 다루는 방법 학습
■ 연결 관리를 위한 고수준 인터페이스인 큐레이터 사용
■ 주키퍼의 내부 구조와 관리 도구에 익숙해짐

★ 이 책의 대상 독자 ★

이 책은 분산 시스템 개발자와 운영 환경에서 주키퍼를 사용하는 애플리케이션 관리자를 대상으로 한다. 기본적으로 자바에 대한 지식이 있는 것으로 가정한다. 이 책에서는 주키퍼를 효율적으로 사용할 수 있게 분산 시스템 원론에 대한 배경 지식을 제공하고자 한다.

★ 이 책의 구성 ★
1부는 아파치 주키퍼와 같은 시스템이 생겨난 배경을 이야기한다. 그리고 분산 시스템을 사용하는 데 필요한 분산 시스템의 필수 배경 지식에 대해 설명한다.
‘1장, 소개’에서는 주키퍼로 할 수 있는 일을 설명하고, 주키퍼로 목표를 달성하는 방법에 대해 설명한다.
‘2장, 주키퍼와 첫 만남’에서는 주키퍼의 기본 개념과 구성 요소에 대해 살펴본다. 명령 행에서 주키퍼를 사용해봄으로써 주키퍼로 할 수 있는 것에 대한 구체적인 아이디어를 얻는 방법을 설명한다.

2부는 라이브러리 호출과 프로그래머가 알고 있어야 하는 프로그래밍 테크닉에 대해 다룬다. 이 내용은 유용하지만 시스템 관리자들은 꼭 읽지 않아도 되며, 개발자들이 가장 많이 사용하는 자바 API에 초점을 맞춘다. 다른 언어를 사용하고 있다면 2부는 기본 테크닉과 기능에 대해 학습하는 용도로만 읽고 난 다음, 다른 언어로 구현해보는 것도 좋겠다. 아울러 C 언어 애플리케이션 개발자를 위한 C 언어 바인딩을 다루는 장도 추가적으로 제공한다.
‘3장, 주키퍼 API 시작’에서는 자바 API에 대해 소개한다.
‘4장, 상태 변경’에서는 주키퍼 상태 변경 사항을 추적하고 변경을 처리하는 방법에 대해 설명한다.
‘5장, 장애 처리’에서는 시스템이나 네트워크 문제를 복구하는 방법에 대해 보여준다.
‘6장, 주키퍼 사용자 위험 부담 원칙’에서는 문제 상황을 피하기 위한 다양한 중요 고려사항들에 대해 설명한다.
‘7장, C 클라이언트’에서는 자바가 아닌 모든 언어의 주키퍼 API 구현의 기본이 되는 C API에 대해 소개한다. 이 장은 자바 언어 외의 다른 언어를 사용하는 프로그래머에게 중요하다.
‘8장, 큐레이터: 주키퍼에 대한 고수준 API’에서는 주키퍼에 대한 고급 단계 API에서는 많이 사용하는 고수준의 추상화 인터페이스인 큐레이터에 대해 설명한다.

3부는 시스템 관리자를 위한 주키퍼 관련 내용을 설명한다. 특히 주키퍼 내부 구조를 설명하는 장은 프로그래머에게도 유익할 것이다.
‘9장, 주키퍼의 내부 구조’에서는 관리 작업에 영향을 주는 주키퍼 개발자들이 고민해서 선택한 몇 가지 선택 항목들에 대해 설명한다.
‘10장, 주키퍼 운영’에서는 주키퍼 설정 방법을 설명한다.

★ 저자 서문 ★
사람들이 매일 이용하는 수많은 응용프로그램은 분산 시스템으로 운영되지만 이러한 분산 시스템을 구성하는 것은 어렵다. 그리고 가까운 시일 내에 분산 시스템에 대한 의존성을 제거할 수 있을 것으로 보이지 않는다. 아파치 주키퍼는 견고한 분산 시스템을 구성하는 작업을 쉽게 만들기 위해 설계되었다. 주키퍼는 핵심 분산 컴퓨팅 개념을 포함하여 만들어졌다. 주키퍼의 주요 목표는 개발자가 이해하기 쉽고 프로그래밍하기 쉬운 간결한 인터페이스를 제시하는 것이다. 그러므로 주키퍼를 이용하면 분산 시스템을 구성하는 작업을 단순하게 만들 수 있다.

주키퍼를 사용하더라도 분산 시스템을 만드는 작업은 그리 만만치 않다. 이것이 이 책을 쓰는 계기가 되었다. 이 책은 여러분이 주키퍼를 사용하여 분산 시스템을 빠르게 구성할 수 있도록 도와줄 것이다. 이 책에서는 여러분이 분산 시스템 전문가인 것처럼 생각할 수 있도록 기본 개념부터 시작한다. 미리 숙지하고 있어야 하는 분산 시스템의 주의사항을 설명하는 부분에서 간단하지만은 않은 기본 개념 설명에 약간 두려울 수도 있을 것이다. 하지만 걱정하지는 말자. 이 책에서 제시하는 주요 문제들을 제대로 이해한다면 거대한 분산 응용프로그램을 구성하는 올바른 방법을 알게 될 것이다.

★ 옮긴이의 말 ★

하둡을 시작으로 에코 시스템이 형성되면서 HBase, 하이브(Hive), 피그(Pig), 머하웃(Mahout), 스파크(Spark), 타조(Tajo) 등 다양한 분산 시스템 컴포넌트들이 나왔습니다. 그 중 주키퍼는 분산 시스템을 코디네이션합니다. 다시 말해, 분산 환경의 시스템들을 관리하도록 도와줘서 안정적으로 운영되도록 하는 역할을 합니다.

저는 하둡 에코 시스템 중 주키퍼를 먼저 접했습니다. 처음 주키퍼를 설치한 후에 ‘파일 시스템과 유사한 트리 구조에 데이터를 저장하는 것으로 과연 무엇을 할 수 있을까?’라는 의문이 생겼지만 분산 락, 멤버십 관리, 큐, 이벤트 발행 등 주키퍼를 다양하게 활용해보면서, 주키퍼는 분산 시스템을 구성할 때 가장 먼저 떠오르는 컴포넌트였습니다.

주키퍼는 간단한 몇 가지 설정만으로도 대부분 잘 동작하기 때문에 하둡(Hadoop), HBase 같은 분산 시스템들과 달리 쉽게 사용할 수 있는 분산 시스템 컴포넌트입니다. 하지만, 다양한 시스템 환경에서 발생하는 복합적인 문제들을 정확히 파악하고 해결하려면 주키퍼와 분산 시스템에 대한 이해가 필요합니다. 이 책에서는 분산 시스템에서 발생하는 상황들에 대한 설명부터 주키퍼의 동작 원리, 코드를 참조할 수 있는 가이드를 제공합니다. 이런 내용들이 분산 시스템을 구성하거나 현재 주키퍼를 사용하면서 겪고 있는 문제를 해결하는 데 도움이 되었으면 합니다.
- 박용준


주키퍼를 처음 접한 건 4년 전 소셜커머스 서비스 프로젝트를 진행할 때였다. 당시 애플리케이션 서버의 클러스터 멤버십을 구성하기 위해 주키퍼를 사용했는데, 간단한 프로그래밍으로 분산된 서버들의 클러스터 관리를 손쉽게 할 수 있다는 것에 큰 감동을 받았다. 이후 많은 프로젝트에서 주키퍼를 큐, 메타데이터 저장소, Failover 구현 등으로 사용했고 물론 지금도 쓰고 있다.

주키퍼는 앙상블로 이루어진 트리 구조의 데이터 저장소로서 그 개념이 매우 간단하다. 그래서 주키퍼를 처음 접한 많은 사람은 종종 이게 무슨 코디네이터이고 어떻게 클러스터 멤버십이나 큐로 사용할 수 있다는 것인지 의문이 생긴다. 이런 분들께 이 책을 적극적으로 추천한다. 이 책은 주키퍼가 무엇을 위해 만들어졌고 어떤 일을 할 수 있는지에 대한 배경 설명부터 예제를 통한 실제 구현으로 이런 궁금증을 해소해준다. 또한 주키퍼를 실제 필드에 적용해보고자 하는 분들에게는 주키퍼 사용에 대한 저자의 노하우를 알려주고, 주키퍼의 동작 원리를 자세히 설명해주기 때문에 직접 주키퍼를 운영하는 데 큰 도움을 줄 것이다.
- 한연수

리뷰/한줄평3

리뷰

6.4 리뷰 총점

한줄평

첫번째 한줄평을 남겨주세요.