[Kafka 공부] #2
: Kafka 환경 준비하고, Quick Start 실행하기
Kafka 환경 준비하기
- 구축 환경 : Windows10
- 필요할 프로그램 : Kafka, java(JDK)
1. 자바 설치
(프로그램 다운 주소 : https://www.oracle.com/kr/java/technologies/javase-downloads.html )
1. Java SE 8 버전 설치 파일 다운로드
2. exe 파일 실행
3. 특별한게 없어서 계속 NEXT 버튼 누르면서 진행
4. 자바 설치 확인 : java -version 명령어 이용
[참고사항]
** kafka가 스칼라 언어기반이고, 스칼라가 자바언어 기반이다!
( 자바 언어를 사용하는 게 아니라 자바환경이 구축되어 있어야 카프카 사용 가능 )
jdk 버전/운영체제에 따라 다름...! openjdk 등
2. 카프카 설치하기
( 주소: https://kafka.apache.org/downloads )
1. Apache Kafka 홈페이지에서 최신버전의 Binary 파일을 다운받고 압축을 해제하면 설치가 끝난다.
2. 운영체제에 따라 명령어 실행 위치와 명령어 스크립트가 다르다.
- 리눅스 : .\bin 디렉터리, .sh 파일
- 윈도우 : .\bin\windows 디렉터리, .bat 파일
* - 윈도우는 역슬러시(\), 리눅스는 슬래시(/)
3. 카프카 작업 시 명령 프롬프트 여러 개가 필요하다.
- zookeeper
- broker server(kafka server)
- consumer ; 메시지 받는다
- producer ; 메시지 보낸다
- kafka connect server (이번에 사용 x)
등
Quick Start 실행하기
Apache Kafka 사이트의 Quick Start를 바탕으로 구성되었습니다!
- 주소 : https://kafka.apache.org/documentation/#quickstart
1. 카프카 클러스터(Kafka Cluster) 서버 구동하기
: 카프카 서버는 독립적이지 않고, zookeeper와 쌍으로 기동을 해야한다. 또한, Zookeeper 서버를 먼저 기동한 후에 Kafka broker 서버를 기동해야한다.
1) zookeeper 서버 먼저 기동 한다.
.\bin\windows\zookeeper-server-start.bat .\config\zookeeper.properties
[참고]
- binding to port 0.0.0.0/0.0.0.0:218 (성공 시 나타난다)
- 윈도우에서 사용시 주의할 점: 터미널에서 화면에 클릭을 하면 선택이라는 글자가 왼쪽 상단에 보이면 서버은 멈춤상태(홀딩상태)가 된다. 해제 하려면 엔터를 해주어야 해제해야 한다.!!!
2) kafka 서버 (Kafka broker) 기동한다.
.\bin\windows\kafka-server-start.bat .\config\server.properties
---> 1), 2) 서버 둘다 떠 있어야 카프카 클러스터가 작동된다!!!!
2. Topic을 생성 및 정보 확인한다.
Topic : 메시지가 전달되는 공간으로, 여러개의 Partition으로 구성되어 있다.
Offset은 Partition에서 메시지의 위치를 나타낸다.
1) Topic 생성하기
\bin\windows\kafka-topics.bat --create --topic quickstart-events --bootstrap-server localhost:9092 --partitions 1
>Created topic quickstart-events
2) Topic 목록 확인하기
.\bin\windows\kafka-topics.bat --bootstrap-server localhost:9092 --list
>quickstart-events # 앞에서 만들어진 토픽이름(quickstart-events)이 뜨면 성공한것
3) Topic 상세 정보 확인
.\bin\windows\kafka-topics.bat --describe --topic quickstart-events --bootstrap-server localhost:9092
3. Kafka 메시지 소비/생산
1) producer : 메시지 생산
.\bin\windows\kafka-console-producer.bat --broker-list localhost:9092 -topic quickstart-events
2) consumer : 메시지 소비
.\bin\windows\kafka-console-consumer.bat --bootstrap-server localhost:9092 --topic quickstart-events --from-beginning
* producer가 메시지 hello world를 보내면(메시지 생산)
> consumer가 hello world 메시지를 받는다(메시지를 소비)
4. Kafka 서버 작업 이후 Topic등 정보 확인
1) Topic 목록 확인 명령어
.\bin\windows\kafka-topics.bat --bootstrap-server localhost:9092 --list
> __consumer_offsets
> quickstart-events
__consumer_offsets 라는 없던 토픽이 생성 됨.
메시지가 전달 되면서 저장되었던 partition의 위치가 변경되고 offset의 숫자가 늘어 남. 이 때, 어떤 consumer가 어떤 메시지 어디까지 가져갔는지를 저장하는데 사용한다.
2) Topic 상세 정보 확인
.\bin\windows\kafka-topics.bat --describe --topic quickstart-events --bootstrap-server localhost:9092
quickstart-events 라는 Topic에 대한 상세 정보를 확인할 수 있다.
> 결과 : 0번째 파티션, 리더 : 0 를 사용한다.