Jinhyuk Kim

Software Development Engineer @ Amazon

reniowood at gmail.com
resume

[카프카 핵심 가이드] Chatper 2. 카프카 설치와 구성하기

2019-04-30

제일 먼저 할 일

운영체제 선택하기

이 책에서는 리눅스 운영체제를 기준으로 한다.

자바 설치하기

JDK(Java Development Kit)을 찾아 설치한다.

주키퍼 설치하기

주키퍼는 카프카 배포판에 포함되어 있다.

주키퍼에 클라이언트와 카프카 클러스터에 관한 메타데이터를 저장한다.

주키퍼 앙상블

주키퍼의 클러스터를 앙상블(ensemble)이라고 하며, 하나의 앙상블은 여러 개의 서버를 멤버로 가진다.

요청에 대한 응답을 빠르고 안정적으로 하기 위해 홀수 개의 서버를 멤버로 갖는다.

앙상블의 서버 중 과반수가 작동 가능하다면 언제든 요청 처리가 가능하다.

주키퍼 서버를 앙상블로 구성하려면 각 서버가 공통된 구성 파일을 가져야 한다. 또한 각 서버는 자신의 ID 번호를 지정한 myid 파일을 디렉터리에 가지고 있어야 한다.

카프카 브로커 설치하기

자바와 주키퍼를 설치 및 구성한 이후에 카프카를 설치한다.

브로커 구성

토픽의 기본 설정

하드웨어 선택

클라우드에서 카프카 사용하기

AWS에서는 m4나 r3 타입의 인스턴스가 흔히 사용된다.

카프카 클러스터

브로커 개수

전체 데이터 크기 / 하나의 브로커가 저장 가능한 데이터 크기를 고려한다.

클러스터의 전체 처리 용량을 고려한다.

브로커 구성

모든 브로커의 구성 파일의 zookeeper.connect 매개변수의 설정값이 같아야 한다.

broker.id 매개변수에는 클러스터의 모든 브로커가 고유한 값을 가져야 한다.

복제를 제어하는 매개변수 등을 관리해야 한다.

운영체제 조정하기

실제 업무 사용 시 고려사항

가비지 컬렉션 옵션

데이터센터 레이아웃

업무용으로 사용하려면 카프카 클러스터에 replica를 구성하는 것이 중요하다.

한 파티션의 replica가 같은 랙을 공유하지 않도록 한다.

하나의 클러스터에 속한 각 카프카 브로커는 서로 다른 랙에 설치되는 것이 가장 좋다.

주키퍼 공동 사용하기

단일의 카프카 클러스터에 주키퍼 앙상블을 사용하는 것은 바람직하지 않다.

컨슈머는 오프셋을 커밋하기 위해 주키퍼를 사용할 수 있다.

주키퍼 앙상블에 부담을 많이 주면 다수의 브로커에 문제가 생길 수 있다.