[Docker,Kafka] docker-compose 로 간단하게 카프카 띄우기

유알·2023년 11월 1일
1

[Kafka]

목록 보기
5/5

여기 저기에 카프카를 띄울 때 마다, wget 해서 환경 변수 설정하고, 설정바꾸고, 엄청 번거로웠다.
마침 오라클 클라우드를 사용하다가 뭔가 자꾸 막혀서 도커를 사용해보았더니, 정말 엄청 편리했다.

나의 설정 같은 경우 1MB 메모리를 가진 저렴한 서버에 띄우다 보니 저 JVM 메모리 설정이 들어갔는데, 넉넉한 상황에서는 저걸 빼도 된다.

저기에 있는 마운트를 다 연결해야, 추후 docker-compose down으로 다 삭제한 다음 다시 실행시켜도, 데이터가 유지된다.

소스

version: '2'

services:
  zookeeper:
    image: confluentinc/cp-zookeeper:latest
    environment:
      ZOOKEEPER_SERVER_ID: 1
      ZOOKEEPER_CLIENT_PORT: 2181
      ZOOKEEPER_TICK_TIME: 2000
      ZOOKEEPER_INIT_LIMIT: 5
      ZOOKEEPER_SYNC_LIMIT: 2
    volumes:
      - "/home/ubuntu/zookeeper/data:/var/lib/zookeeper/data"
      - "/home/ubuntu/zookeeper/secrets:/var/lib/zookeeper/secrets"
      - "/home/ubuntu/zookeeper/log:/var/lib/zookeeper/log"
    ports:
      - "22181:2181"

  kafka:
    image: confluentinc/cp-kafka:latest
    depends_on:
      - zookeeper
    ports:
      - "29092:29092"
    volumes:
      - "/home/ubuntu/kafka/data:/var/lib/kafka/data"
      - "/home/ubuntu/kafka/secrets:/var/lib/kafka/secrets"
    environment:
      KAFKA_BROKER_ID: 1
      KAFKA_ZOOKEEPER_CONNECT: 'zookeeper:2181'
      KAFKA_ADVERTISED_LISTENERS: PLAINTEXT://kafka:9092,PLAINTEXT_HOST://{}:29092
      KAFKA_LISTENER_SECURITY_PROTOCOL_MAP: PLAINTEXT:PLAINTEXT,PLAINTEXT_HOST:PLAINTEXT
      KAFKA_INTER_BROKER_LISTENER_NAME: PLAINTEXT
      KAFKA_OFFSETS_TOPIC_REPLICATION_FACTOR: 1
      KAFKA_GROUP_INITIAL_REBALANCE_DELAY_MS: 0
      KAFKA_HEAP_OPTS: "-Xmx400m -Xms400m"
profile
더 좋은 구조를 고민하는 개발자 입니다

0개의 댓글

관련 채용 정보