Spring으로 실시간 메시지 전송 기능을 공부하면서 널리 사용되는 Kafka를 정리해 보겠습니다.
아래 이미지는 ZooKeeper의 구성도입니다.

이 사진에서 서버는 ZooKeeper, 클라이언트는 Kafka당신은 그것을 생각할 수 있습니다.
• 카프카란?
– 탈중앙화 스트리밍 플랫폼(분산 스트리밍 플랫폼)
– 링크드인다양한 구직 및 채용정보를 한자리에서 프로세스(출판하다–구독하다) 개발은 다음을 수행할 수 있는 플랫폼에서 시작됩니다.
(출판하다/구독하다: 게시-구독 특정 수신자에게 직접 메시지를 보내는 시스템이 아닙니다., 해당 주제의 메시지를 받고 싶은 사람(주제)구독하면 메시지를 읽을 수 있습니다..)
• 특성
– 대용량 실시간 로그 처리를 위해 특별히 설계되었습니다. 메시징 시스템으로 TPS매우 좋다
– 메시지를 메모리에 저장하는 기존 방식 메시징 시스템과 달리 파일에 저장되기 때문에 카프카를 재시작해도 메시지가 유실될 위험이 적다.
– 대용량 처리에 특화 : 소비자(소비자)중개인에게 가다(브로커)에서 직접 메시지 가져오기 당기다방식으로 행동 > 소비자 처리 용량만큼 많은 메시지만 가져와서 최적의 성능 제공
– 확장성(스케일 아웃)수업 고가용성(고가용성)~을 위한 브로커클러스터에서 작동하도록 설계되었습니다.. 심지어 브로커가다 1개만 있는 경우에도 클러스터 역할을 함. 클러스터 내 브로커분산 처리 아파치 주키퍼담당
• 주키퍼무엇인가요
– Zookeeper는 분산 조정 서비스를 제공하는 오픈 소스 프로젝트입니다. 이러한 응용 프로그램의 목적은 개발자가 조정 논리보다 비즈니스에 중요한 논리에 집중할 수 있도록 돕는 것입니다.
• 주키퍼 사용
– ZooKeeper는 주로 클러스터의 구성 서버 간에 공유되는 데이터를 유지하거나 특정 작업을 조정하는 데 사용됩니다.
– 상태 정보는 znode라는 곳에 key-value 형태로 저장됩니다. 분산 응용 프로그램은 이 gnode에 저장된 키-값을 사용하여 서로 데이터를 교환합니다.
– Gnode를 일반 컴퓨터의 파일이나 폴더 개념으로 생각하시면 됩니다.
출처: https://programacion.156
#Docker는 이미 설치되어 있다고 가정하고 Kafka 설치로 시작합니다.
1. 카파 도커 이미지 다운로드
터미널을 실행하고 아래 git 주소를 입력하여 이미지를 다운로드합니다.
git clone https://github.com/wurstmeister/kafka-docker
설치 후
엘에스 명령으로 카프카 도커 폴더는 만들어진 물건 확인하다 숫자 있습니다.

2. docker-compose.yml 파일 수정
!!Kafka는 Kafka 클러스터와 ZooKeeper가 설치되어 있어야 하므로 컨테이너를 docker-compose로 연결해야 합니다.
Kafka 폴더에 접속 후
cd kafka-docker
뷔편집기로 구성 파일을 엽니다.
vi docker-compose.yml
자신의 설정 파일과 아래 설정 파일의 내용이 다를 경우 수정하여 추가합니다.
docker-compose.yml
version: '2'
services:
zookeeper:
image: wurstmeister/zookeeper
ports:
- "2181:2181"
restart: unless-stopped
kafka:
container_name: kafka
image: wurstmeister/kafka
depends_on:
- zookeeper
ports:
- "9092:9092"
environment:
DOCKER_API_VERSION: 1.22
KAFKA_ADVERTISED_HOST_NAME: 127.0.0.1
KAFKA_ADVERTISED_PORT: 9092
KAFKA_CREATE_TOPICS: "test-topic:1:1"
KAFKA_ZOOKEEPER_CONNECT: zookeeper:2181
volumes:
- /var/run/docker.sock:/var/run/docker.sock
restart: unless-stopped
제가 수정하고 추가한 항목은 다음과 같습니다.
컨테이너 이름: kafka //기본 컨테이너 이름
KAFKA_ADVERTISED_HOST_NAME: 127.0.0.1 // localhost IP 입력
KAFKA_CREATE_TOPICS: “test-topic:1:1” // 기본 주제 설정
삼. Docker로 Kafka 서버 시작
config 파일을 편집한 후 터미널에 다음 명령을 입력합니다.
Zookeeper도 다운되고 Kafka 이미지가 Docker 서버에 업로드됩니다.
docker-compose -f docker-compose.yml up -d

도커 컨테이너 확인
docker ps

위의 docker-compose.yml 구성 파일에 설정된 컨테이너 이름(container_name: kafka)으로 Docker에 업로드 되었는지 확인합니다.
다음 포스팅에서는 서버에서 직접 메시지를 보내고 받는 테스트를 해보겠습니다.