윈도우, macOS, 리눅스 등 다양한 운영체제에서 실행 가능하나 대체로 리눅스가 권장된다
카프카 최신 버전은 자바 8과 11을 모두 지원한다
아파치 카프카는 카프카 클러스터의 메타데이터와 컨슈머 클라이언트에 대한 정보를 저장하기 위해 아파치 주키퍼를 사용한다.
주키퍼는 고가용성을 보장하기 위해 앙상블(ensemble)이라 불리는 클러스터 단위로 작동하도록 설계되었다.
<aside> 💡
<주키퍼 앙상블 크기 결정하기>
주키퍼 앙상블을 구성할 때는 5개의 노드 크기를 고려한다. 앙상블 설정을 변경할 수 있게 하려면, 한 번에 한 대의 노드를 정지시켰다가 설정을 변경한 뒤 다시 시작해야 한다.
9대 이상의 노드를 사용하는 것은 합의(consensus) 프로토콜 특성상 성능이 저하되어 권장하지 않는다.
클라이언트 연결이 너무 많아서 5대 혹은 7대의 노드가 부하를 감당하기에 모자란다는 생각이 들면 옵저버 노드를 추가하여 읽기 전용 트래픽을 분산시킨다.
</aside>
주키퍼 서버를 앙상블로 구성하려면 두 가지가 필요하다.
x
: 서버의 ID. 정숫값이어야 한다. 0부터 시작할 필요는 없으며, 순차적으로 부여될 필요도 없다.hostname
: 서버의 호스트명 또는 IP 주소peerPort
: 앙상블 안의 서버들이 서로 통신할 때 사용하는 TCP 포트 번호leaderPort
: 리더를 선출하는 데 사용되는 TCP 포트 번호이 책은 2.7.0 버전을 사용한다.