반응형

사전 설치

1. Java 설치

Java Development Kit (JDK)를 설치하세요.

NOTE: Your local environment must have Java 8+ installed.
$ sudo apt update

$ sudo apt install default-jre
$ sudo apt install default-jdk

 

설치 확인

$ java -version
openjdk version "17.0.11" 2024-04-16
OpenJDK Runtime Environment (build 17.0.11+9-Debian-1deb12u1)
OpenJDK 64-Bit Server VM (build 17.0.11+9-Debian-1deb12u1, mixed mode, sharing)

 

 

설치

1. Kafka 다운로드

- 파일 다운로드 경로

https://dlcdn.apache.org/kafka/3.7.1/kafka_2.13-3.7.1.tgz

$ wget https://dlcdn.apache.org/kafka/3.7.1/kafka_2.13-3.7.1.tgz

$ tar -xzf kafka_2.13-3.7.1.tgz
$ cd kafka_2.13-3.7.1

 

 

2. Zookeeper 시작하기

Kafka는 Zookeeper를 필요로하기 때문에 먼저 시작시켜 줍니다.

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

 

(Option) 필요한 경우 서비스로 등록시켜 관리합니다.

- 재시작시 자동으로 실행이 필요한 경우 등

$ sudo vi /etc/systemd/system/zookeeper-server.service

 

zookeeper-server.service 파일 내용

[Unit]
Description=zookeeper-server
After=network.target

[Service]
Type=forking
User=${your-user}
Group=${your-group}
SyslogIdentifier=zookeeper-server
WorkingDirectory=${your-directory}
Restart=always
RestartSec=0s
ExecStart=${your-directory}/bin/zookeeper-server-start.sh config/zookeeper.properties
ExecStop=${your-directory}/bin/zookeeper-server-stop.sh

 

 

 

3. Kafka 시작하기

Kafka를 실행시킵니다.

# Start the Kafka broker service
$ bin/kafka-server-start.sh config/server.properties

 

(Option) 필요한 경우 서비스로 등록시켜 관리합니다.

- 재시작시 자동으로 실행이 필요한 경우 등

$ sudo vi /etc/systemd/system/kafka-server.service

 

kafka-server.service 파일 내용

[Unit]
Description=kafka-server
After=network.target

[Service]
Type=forking
User=${your-user}
Group=${your-group}
SyslogIdentifier=kafka-server
WorkingDirectory=${your-directory}
Restart=always
RestartSec=0s
ExecStart=${your-directory}/bin/zookeeper-server-start.sh config/server.properties
ExecStop=${your-directory}/bin/zookeeper-server-stop.sh

 

 

4. 동작 확인

- Topic을 생성하여 정상적으로 동작하는지 확인한다.

 

$ bin/kafka-topics.sh --create --topic quickstart-events --bootstrap-server localhost:9092

 

- 생성 된 Topic 정보를 확인한다. 

$ bin/kafka-topics.sh --describe --topic quickstart-events --bootstrap-server localhost:9092
Topic: quickstart-events        TopicId: Dqx24JbaTeK_Asr90184Lg PartitionCount: 1       ReplicationFactor: 1    Configs:
        Topic: quickstart-events        Partition: 0    Leader: 0       Replicas: 0     Isr: 0

 

 

Trouble Shooting

- 외부의 다른 서버에서 해당 Kafka 서비스에서 사용이 안되는 경우가 발생하였습니다.

- 기본 설정으로는 localhost 또는 127.0.0.1이라는 주소로 Kafka에 접근하게 됩니다.

- IP로 접근하려는 외부 서비스들이 있을 경우 아래 파일에 해당 서버의 IP 주소를 advertised.listeners 에 등록합니다.

 

/config/server.properties

############################# Socket Server Settings #############################

# The address the socket server listens on. If not configured, the host name will be equal to the value of
# java.net.InetAddress.getCanonicalHostName(), with PLAINTEXT listener name, and port 9092.
#   FORMAT:
#     listeners = listener_name://host_name:port
#   EXAMPLE:
#     listeners = PLAINTEXT://your.host.name:9092
#listeners=PLAINTEXT://:9092

# Listener name, hostname and port the broker will advertise to clients.
# If not set, it uses the value for "listeners".
advertised.listeners=PLAINTEXT://your.host.name:9092

 

참고 사이트

- https://kafka.apache.org/quickstart

반응형

+ Recent posts