Kafka

2. 실습용 카프카 브로커 설치

1. 자바 다운로드 

 

2. 카프카 패키지 다운로드

wget https://archive.apache.org/dist/kafka/2.5.0/kafka_2.12-2.5.0.tgz

 

3. 패키지 압축 풀기

tar xvf kafka_2.12-2.5.0.tgz

 

4. 카프카 브로커 힙 메모리 설정

카프카 패키지의 힙 메모리는 브로커가 1G, 주키퍼가 512MB로 기본 설정되어 있습니다. 그런데

AWS EC2 프리티어의 경우 메모리가 1G로

카프카를 실행하면 메모리가 부족하여 에러와 함께 실행되지 않게 됩니다.

이 때문에 힙 머모리 사이즈를 미리 환경 변수로 사이즈를 조절해야 합니다. 

cd kafka_2.12-2.5.0/

 export KAFKA_HEAP_OPTS="-Xmx400m -Xms400m"

 

위와 같이 터미널에서 사용자가 입력한 변수는 테미널 세션이 종료되고 나면 다시 초기화됩니다.

이를 해결 하귀 위해서는 bashrc 파일에 넣어야 합니다.

vi ~/.bashrc

 

위와 같이 편집 후 적용한 뒤 echo를 통해서 조회하면 정상적으로 출력됩니다.

source ~/.bashrc

 

카프카 브로커 실행시 메모리 설정 부분은 아래의 명령어를 통해서 확인 하실 수 있습니다.

 cat bin/kafka-server-start.sh

 

5. 카프카 브로커 실행 옵션 설정

카프카 브로커가 클러스터 운영에 필요한 옵션은 config 하위의 server.properties에서 설정할 수 있습니다.

실습용 카프카 브러커를 실행할 것이므로 advertised.listener만 설정 합니다.

(카프카 클라이언트 또는 커맨드 라인 툴을 브로커와 연결할 때 사용됨)

접속하고 있는 인스턴스의 퍼블릭 IP와 기본 포트 9092를 PLAINTEXT://와 함께 붙여주고 주석을 해제해 줍니다.

 

6. 주키퍼 실행

분산 코디네이션 서비스를 저공하는 주키퍼는 카프카의 클러스터 설정 리더 정보, 컨트롤러 정보를 담고 있어서 카프카를 실행하는 데 필수 애플리케이션입니다. 

 

주키퍼 실행 명령어

 bin/zookeeper-server-start.sh -daemon config/zookeeper.properties

 

주키퍼가 정상적으로 실행되었는 지 확인 명령어

 jps -vm

저의 경우 백엔드 서버가 2개 돌어가고 있어서 다른 애플리케이션 정보도 떴지만 여러분은 빨간색 영역만 확인하시면 됩니다.

 

7. 카프카 브로커 실행 및 로그 확인

카프카 브로커 실행 명령어

bin/kafka-server-start.sh -daemon config/server.properties

카프카 브로커 실행 확인 명령어

 jps -m

 

더보기

저는 이 과정에서 실행이 되지않았는데 로그 확인은 -daemon을 지우시면 확인하실 수 있습니다. 로그를 확인하니 메모리가 부족하다 였습니다. 역시 어플리케이션 2개에 주키퍼까지 해놓고 카프카까지는 무리였나봅니다. 두개의 어플리케이션을 죽이고 다시 시도했습니다 .ㅎ

 

카프카 클라이언트 개발 및 클러스터 운영 이슈 등이 카프카 브러커에 로그로 남기 때문에 로그를 통해서 문제를 해결할 수 있습니다. 이 때문에 로그는 굉장히 중요하죠 .ㅎ

 

카프카 로그 확인 명령어

 tail -f logs/server.log

 

책에서는 이렇게 만들고 로컬에서 테스트 하는 것으로 끝이 일단락 됩니다.

그런데 매번 이렇게 다운받고 설치하고 하는건 힘든데 도커이미지가 혹시 있나 찾아보니... 

있더군요..

https://github.com/wurstmeister/kafka-docker

클론받아서 docker-compose를 이용하는 방식이... 후후 

Reference

아파치카프카 애플리케이션 프로그래밍 with 자바 - 최원영

 

'Kafka' 카테고리의 다른 글

1. Kafka 간단 정리  (0) 2021.05.20
Kafka 공부 시작  (0) 2021.05.20