Apache Kafka ‐ Kafka 세팅 - dnwls16071/Backend_Summary GitHub Wiki

📚 카프카(Kafka)

  • Apache Kafka는 고성능 데이터 파이프라인, 스트리밍 분석, 데이터 통합 및 미션 크리티컬 애플리케이션에 사용되는 오픈소스 분산 이벤트 스트리밍 플랫폼이다.
  • Kafka는 결론적으로 말하자면 대규모 데이터를 처리할 수 있는 메시지 큐이다.

📚 메시지 큐(Message Queue0

  • 메시지 큐는 큐 형태에 데이터를 일시적으로 저장하는 임시 저장소를 의미한다.
  • 메시지 큐를 활용하면 비동기적으로 데이터를 처리할 수 있어서 효율적이다.

📚 AWS EC2에 Kafka 세팅하기(프리티어 버전 한정)

// Kafka 설치 파일 다운받기
$ wget https://dlcdn.apache.org/kafka/4.0.0/kafka_2.13-4.0.0.tgz
// 압축 풀기
$ tar -xzf kafka_2.13-4.0.0.tgz

공부하는 단계에서 AWS 프리티어를 사용 중이라 Kafka를 구동시키기에 턱없이 부족한 메모리 사양이라 설정을 추가해야 한다.

// Kafka가 소모하는 메모리 크기를 낮추기
$ export KAFKA_HEAP_OPTS="-Xmx400m -Xms400m"
// swap을 활용해 메모리를 늘리기
$ sudo dd if=/dev/zero of=/swapfile bs=128M count=16 # 2GB짜리의 파일 생성
$ sudo chmod 600 /swapfile # 파일에 권한 부여
$ sudo mkswap /swapfile # 2GB 짜리 파일을 swap 공간의 형태로 전환
$ sudo swapon /swapfile # swap 활성화
// 시스템 부팅 시마다 자동으로 활성화되도록 파일 시스템을 수정
$ sudo vi /etc/fstab
$ /swapfile swap swap defaults 0 0
// 카프카 설정 수정하기
$ vi config/server.properties
// 외부에서 접근할 때 사용하는 주소
$ advertised.listeners=PLAINTEXT://3.34.65.205:9092,CONTROLLER://3.34.65.205:9093
// 초기 로그 폴더 세팅(카프카 첫 구동 시에만 명령어 입력)
$ KAFKA_CLUSTER_ID="$(bin/kafka-storage.sh random-uuid)"
$ bin/kafka-storage.sh format --standalone -t $KAFKA_CLUSTER_ID -c config/server.properties

// 카프카 서버 포그라운드로 실행
$ bin/kafka-server-start.sh config/server.properties

// 카프카 서버 백그라운드로 실행
$ bin/kafka-server-start.sh -daemon config/server.properties