Blog

[Spring][258] EC2 Kafka 서버 적용 ( 테스트 환경 : 로컬 )

Category
Author
Tags
PinOnMain
1 more property

전체 프로그램 구조

현재 아직은 AWS에 배포하지 않은 상태입니다.
배포 전 카프카 테스트를 위해 아래의 구조에서 로드 밸런서 없이 main Server ( Localhost:8080 ), Traffic Server ( Localhost:8090 ), Kafka Server ( AWS Ec2 ) 구조로 테스트 하였습니다.

AWS EC2 생성 및 설정

EC2 인스턴스 생성

EC2 보안 그룹 설정

EC2 SSh 연결

EC2에 Java 설치

sudo apt-get update sudo apt-get install openjdk-17-jdk java -version
Shell
복사

Kafka 설치

wget <https://downloads.apache.org/kafka/3.6.0/kafka_2.12-3.6.0.tgz>
Shell
복사
tar xvf kafka_2.12-3.6.0.tgz
Shell
복사

Kafka 설정

server.properties 파일 편집

listeners와 advertised.listeners 설정
listeners Kafka 서버가 클라이언트의 연결을 수락할 인터페이스와 포트를 설정합니다. 외부 IP에서의 접근을 허용하려면 서버의 외부 IP 주소를 사용하거나 모든 인터페이스에서 수신하도록 0.0.0.0을 설정합니다.
listeners=PLAINTEXT://0.0.0.0:9092
Plain Text
복사
advertised.listeners: 클라이언트가 연결할 Kafka 서버의 주소를 알려주는 설정입니다. 여기에는 외부에서 접근할 수 있는 서버의 IP 주소 또는 도메인 이름을 지정해야 합니다.
advertised.listeners=PLAINTEXT://your_external_ip:9092
Plain Text
복사
listener.security.protocol.map와 inter.broker.listener.name 설정
listener.security.protocol.map 리스너 이름과 사용할 보안 프로토콜을 매핑합니다.
listener.security.protocol.map=PLAINTEXT:PLAINTEXT
Plain Text
복사
inter.broker.listener.name 브로커 간 통신에 사용할 리스너의 이름을 설정합니다.
inter.broker.listener.name=PLAINTEXT
Plain Text
복사

Kafka 서버 실행

zookeeper 서버 실행

bin/zookeeper-server-start.sh config/zookeeper.properties
Shell
복사

kafka 서버 실행

bin/kafka-server-start.sh config/server.properties
Shell
복사

Kafka Topic 생성

Kafka Topic 리스트 확인

웹 서비스에 카프카 적용

Kafka Config

테스트

카프카로 데이터가 정상적으로 들어 갔음을 확인 가능하다.
하지만 컨슈머에서 처리하지 못하는 문제가 발생하였다.

결과

아래처럼 카프카 서버를 거쳐서 정상적으로 작동하는 것을 알 수 있다!!!