반응형
docker-compose로 kafka, zookeeper 간편 설치
나는 NiFi 에서 사용하기 위해 설치하였다.
Kafka 설치 이유는 아래와 같다.
- 엄청 많은 데이터(초당 5000개 이상) 를 처리하는데 PutSQL(RDBMS) 같은 프로세서는 초당 처리 속도가 제한적이기 때문에 많은 데이터들이 NiFi Queue에 쌓여버림(점점 부모 프로세서의 큐까지 연쇄적으로 쌓여 버려 방치할 경우 NiFi 전체 Flow가 마비됨)
- 그렇다고 Queue 사이즈를 늘리기에는 너무 높은 사양의 서버가 요구
단순 연결(TEST)을 위해 설치, 복잡한 데이터를 처리하려면 옵션및 설정을 더 추가해야함.
docker-compose.yml 로 간편하게 설치할 수 있다.
Docker-compose
version: '2'
services:
zookeeper:
image: wurstmeister/zookeeper
container_name: zookeeper
ports:
- "2181:2181"
kafka:
image: wurstmeister/kafka
container_name: kafka
ports:
- "9092:9092"
environment:
KAFKA_ADVERTISED_LISTENERS: PLAINTEXT://<IP ADDR(ex: 127.0.0.1)>:9092
KAFKA_ADVERTISED_HOST_NAME: <IP ADDR(ex: 127.0.0.1)>
KAFKA_ZOOKEEPER_CONNECT: zookeeper:2181
KAFKA_LISTENERS: PLAINTEXT://0.0.0.0:9092
KAFKA_ADVERTISED_PORT: 9092
volumes:
- /var/run/docker.sock:/var/run/docker.sock
depends_on:
- zookeeper
local 환경에서 사용할 경우 `localhost` 혹은 `127.0.0.1` 을 사용하면 되지만
만약 nifi 혹은 kafka를 사용하는 애플리케이션이 로컬에서 사용하지 않을 경우 해당 주소를 써줘야 한다.
예를들어 흔한 iptime 공유기를 사용중일 경우 DDNS를 이용하여 주소를 발급받고 9092TCP 포워딩을 해둔다음 ADVERTISED 부분에 `example.iptime.org:9092` 이렇게 사용해야 외부에서도 접속할 수 있다.
해당 yml를 작성하고 저장한 다음 yml이 있는 디렉토리에서 `docker-compost up` 명령어로 생성, `docker-compose down` 명령어로 제거, `docker <start|stop|restart..> <kafka|zookeeper>` 명령어로 키고 끌 수 있다.
반응형
'Kafka' 카테고리의 다른 글
[Python]kafka key=b'\x00\x00\x00\x01', value='\x00\x00\x00\x00\x00\x00' 원인및 해결방법 (0) | 2024.01.03 |
---|---|
[Docker][Kafka GUI] Kafka를 GUI로 더 쉽게 관리하기 (0) | 2023.08.06 |