- 본격적으로 카프카(Kafka)의 CLI에 대해 알아볼 것이다.
- 먼저 카프카를 실행해야 하고, 그 전에 주키퍼(Zookeeper)를 실행해야한다.
- 주키퍼 서버를 실행해볼 것이다.
주키퍼(Zookeeper) 서버 실행
- 설치했던 카프카 폴더의
bin
폴더를 살펴보면,kafka-server-start.sh
라는 파일이 존재하는데, 이것을 실행시켜주면 주키퍼가 실행된다.
1 |
|
config
파일이 필요하다는 에러가 전시된다.
config
폴더를 살펴본다.- 주키퍼를 위한 config 파일이 존재한다.
1 |
|
dataDir
: 주키퍼가 스냅션(Snaption)이나 로그(Log)를 저장하는 폴더를 지정한다.clientPort
: 클라이언트(Client)가 어떤 포트(Port)를 사용하여 주키퍼와 연락을 할건 지 명시한다.maxClientCnxns
: 0으로 설정되어있다면 이 프로퍼티(Property)를 사용하지 않는다는 뜻이다.- 로컬이나 개발 환경에서는 0으로 설정해도 되지만, 프로덕션(Production) 환경에서는 0 이상이 좋다.
- 보안적인 이슈를 위해 지정해주는 것이 좋다.
admin.enableServer
: 어드민(Admin) 서버를 열 지 지정하는 프로퍼티이다.- 커스터마이징(Customizing)은 진행하지 않고 디폴트(Default)로 진행한다.
1 |
|
- 위와 같이
-daemon
을 이용한 명령어로 프로퍼티와 연결하여 주키퍼 서버를 실행한다.
브로커(Broker) 시작
- 카프카 브로커를 시작하기에 앞서 주키퍼와 마찬가지로 프로퍼티를 먼저 확인한다.
1 |
|
broker.id
: 브로커가 클러스터(Cluster) 안에서 여러 개가 쓰인다면 아이디를 유니크(Unique)하게 설정해야 한다.- 똑같은 아이디를 가진 브로커는 존재하지 않는다.
- 브로커를 하나만 사용할 것이기 때문에 0으로 지정한다.
num.network.threads
: 네트워크(Network)를 주고 받을 때 스레드(Thread)의 갯수이다.num.io.threads
: 리퀘스트(Request)가 왔을 때 처리하는 데 사용하는 스레드의 갯수이다.- 디스크에 읽고 쓰는데 사용하기 때문에 네트워크 스레드보다 많은 편이 좋다.
- 그 외 정보들은 사용 중 필요 시 확인한다.
1 |
|
- 위 명령어로 프로퍼티를 연결하여 카프카 서버를 실행한다.
- 아래와 같이 카프카 서버가 구동되고 있는지 확인할 수 있다.
1 |
|
토픽(Topic) 생성
- 프로듀서(Producer)와 컨슈머(Consumer)가 소통할 매개체인 토픽을 생성할 것이다.
1 |
|
- 실행시켜보면 옵션(Option)이 나온다.
- 토픽을 생성해본다.
- 부트스트랩(Bootstrap) 서버와 토픽 이름, 파티션(Partition) 수와 레플리케이션 팩터(Replication Factor) 수를 입력해야한다.
1 |
|
- 만들어진 토픽의 정보를 확인해본다.
1 |
|
- 카프카의 토픽을 생성했으니, 잘 사용하는 방법을 알아야한다.
- 토픽에 메세지를 보내기 위해 다음 포스팅에서 프로듀서를 알아볼 것이다.