티스토리 뷰
Zookeeper 설정
conf/zookeeper.properties
* zookeeper 데이터 저장 위치
dataDir=D:/kafka_2.11-0.11.0.0/temp/zookeeper
* kafka 가 접속할 포트
clientPort=2181
* 하나의 클라이언트에 동시접속하는 개수 제한 기본 60 이며 0은 무제한
maxClientCnxns=0
* 하나의 zookeeper 리더에 연결해서 동기화 하는 시간
initLimit=5
* 리더가 아닌 zookeeper 노드가 리더와 동기화 하는 시간
syncLimit=2
* zookeeper 서로 간의 통신을 하기 위한 포트
server.1=192.168.0.1:2888:3888
server.2=192.168.0.2:2888:3888
* dataDir 밑에 myid 라는 파일에 자신의 아이디가 명시되어야 한다.
자신의 아이디가 1일경우 "1" 이라고 저장한다.
실행 : bin/zookeeper-server-start.sh config/zookeeper.properties
기타 자세한 설정은 http://zookeeper.apache.org/doc/trunk/zookeeperAdmin.html#sc_configuration 참고
Kafka 설정
conf/server.properties
* 카프카 ID 를 설정해주는 것으로 0 부터 시작된다.
broker.id=0
* zookeeper 의 정보를 입력한다.
zookeeper.connect=192.168.0.1:2181,192.168.0.2:2181
* 메시지 보관 시간
log.retention.hours=24
* port 설정. ip 정보를 적용하지 않으면 local 에서만 접속이 가능하다. 클라이언트에서 192.168.0.3:9093 로 요청해서 접속하려면 아래와 같이 설정해야 한다. (ip를 적지 않으면 tcp 연결은 되나 허용이 안된다.)
listeners=PLAINTEXT://192.168.0.3:9093
기타 자세한 설정은 http://kafka.apache.org/081/documentation.html#brokerconfigs 참고
실행 : bin/kafka-server-start.sh config/server.properties
실행 시 주의 사항
Kafka 를 기동시키기 전 Zookeeper 가 모두 기동돼 있어야 한다. Kafka에 설정된 Zookeeper 가 하나라도 기동돼 있지 않으면 Kafka는 기동되지 않는다.(왜 이렇게 동작하는지는 모르겠다)
하지만 Kafka 가 기동된 후에 Zookeeper 가 죽더라도 Kafka는 죽지않고 Zookeeper가 기동되는지를 체크한다.(이건 너무 당연한..)
추가로 Zookeeper는 다른 Zookeeper가 기동되지 않아도 기동할 수 있다.(이것도 당연..ㅋ)
참고 사이트 : http://epicdevs.com/20