본문으로 건너뛰기

3.2.2. Apache Kafka

데이터 코어 모듈은 Apache Kafka broker의 토픽을 이용하여 데이터를 라우팅합니다. Kafka broker를 구동하기 위해서는 Apache Zookeeper가 필요합니다. Data manager 어플리케이션의 경우 kafka-rest-proxy를 이용하여 Kafka 토픽을 관리합니다. 본 장에서는 이들 모두를 설치하고 구동하는 방법을 설명합니다.

Apache Kafka는 데이터 코어 모듈이 배포되는 호스트에서 사용 가능하나 별도의 전용 호스트에서 구동하는 것을 권장합니다. 본 장에서 설명하는 모든 사항은 아래 환경을 가정합니다.

  • OS: CentOS7
  • 사용자 명: centos
  • 사용자 홈 디렉토리: /home/centos
  • 설치된 패키지: epel-release, java-1.8.0-openjdk, wget
  • 환경변수: JAVA_HOME 구성됨
  • Apache Kafka 배포 디렉토리: /home/centos/kafka

3.2.2.1. Confluent-community 다운로드 및 배포

# 홈 디렉토리 이동
$ cd ~

# 파일 다운로드
$ wget https://packages.confluent.io/archive/7.3/confluent-community-7.3.3.tar.gz

# 압축 해제
$ tar xfz confluent-community-7.3.3.tar.gz

# 디렉토리 수정
$ mv confluent-community-7.3.3 kafka

3.2.2.1. Zokeeper 구동

  1. 설정 파일 수정 (/home/centos/kafka/etc/kafka/zookeeper)

    admin.serverPort=9090
  2. Zookeeper 구동

    $ cd /home/centos/broker/bin
    $./zookeeper-server-start ../etc/kafka/zookeeper.properties | tee zookeeper.log &

3.2.2.2. Kafka Broker 구동

  1. 설정 파일 수정 (/home/centos/kafka/etc/kafka/server.properties)

    advertised.listeners=PLAINTEXT://<Kafka를 구동하는 호스트의 IP>:9092
    listener.security.protocol.map=PLAINTEXT:PLAINTEXT
  2. Kafka Broker 구동

    $ cd /home/centos/broker/bin
    $ ./kafka-server-start ../etc/kafka/server.properties | tee kafka.log &

3.2.2.3. Kafka-rest 구동

  1. 설정 파일 수정 (/home/centos/kafka/etc/kafka-rest/kafka-rest.properties)

    # ingest interface 포트와 다르게 설정(기본 값 8081로 설정되어 있음)
    schema.registry.url=http://localhost:9081

    # Zookeeper 접속 정보
    zookeeper.connect=localhost:2181

    # Kafka Broker 접속 주소 (kafka broker 설정 중 advertised.listeners 값)
    bootstrap.servers=PLATINTEXT://<Kafka를 구동하는 호스트의 IP>:9092

    # kafka-rest 접속 주소
    listeners=http://0.0.0.0:9093
  2. Kafka-rest 구동

    $ cd /home/centos/broker/bin
    $ ./kafka-rest-start ../etc/kafka-rest/kafka-rest.properties | tee kafka-rest.log &