[Kafka] Docker

JunMyung Lee·2023년 3월 9일
0

카프카

목록 보기
3/3

카프카를 통한 데이터 파이프라인을 구축하기 위해, 로컬에 docker image로 먼저 카프카를 구축한다.

구축

  • zookeeper 3.8.1
  • kafka 2.13-2.8.1 ( 앞자리는 스칼라 버전, 뒷자리는 카프카 버전 )
  • kafka-ui

docker-compose

version: '2'
services:
  zookeeper:
    image: zookeeper:3.8.1                  # wurstmeister/zookeeper 는 오히려 M1 안됨
    container_name: zookeeper
    ports:
      - "2181:2181"
    networks:
    - pipeline
  kafka:
    #build: .
    image: wurstmeister/kafka:2.13-2.8.1    # M1 때문..
    container_name: kafka
    ports:
      - 9092:9092
      - 29092:29092
    environment:
      DOCKER_API_VERSION: 1.22
      KAFKA_BROKER_ID: 1
      KAFKA_ZOOKEEPER_CONNECT: zookeeper:2181
      KAFKA_LISTENER_SECURITY_PROTOCOL_MAP: INTERNAL:PLAINTEXT,EXTERNAL:PLAINTEXT
      KAFKA_INTER_BROKER_LISTENER_NAME: INTERNAL
      KAFKA_LISTENERS: INTERNAL://kafka:29092,EXTERNAL://localhost:9092
      KAFKA_ADVERTISED_LISTENERS: INTERNAL://kafka:29092,EXTERNAL://localhost:9092
      KAFKA_DEFAULT_REPLICATION_FACTOR: 3
      KAFKA_NUM_PARTITIONS: 3
    volumes:
      - /var/run/docker.sock:/var/run/docker.sock
    networks:
    - pipeline
  kafka-ui:
    image: provectuslabs/kafka-ui
    container_name: kafka-ui
    ports:
      - "8989:8080"
    restart: always
    environment:
      KAFKA_CLUSTERS_0_NAME: kafka_test
      KAFKA_CLUSTERS_0_BOOTSTRAPSERVERS: INTERNAL://kafka:29092,EXTERNAL://localhost:9092
      KAFKA_CLUSTERS_0_ZOOKEEPER: zookeeper:2181
    networks:
      - pipeline

networks:
  pipeline:
    driver: bridge
  • KAFKA_BROKER_ID : broker.id 에 설정되는 정수값(식별자).
  • KAFKA_ZOOKEEPER_CONNECT: 브로커의 메타데이터를 주키퍼에 저장하기 위한 위치.
  • KAFKA_LISTENER_SECURITY_PROTOCOL_MAP : 구분하고 싶은 네트워크 추가와 보안 프로토콜을 지정. 보안 프로토콜은 PLAINTEXT, SSL, SASL 등 여러 가지가 있고 PLAINTEXT는 리스너가 암호화되지 않는 것.
  • KAFKA_INTER_BROKER_LISTENER_NAME : 브로커 간 통신에 사용할 리스너를 정의. KAFKA_ADVERTISED_LISTENERS 가 여러개인 경우 꼭 사용해야함
  • KAFKA_LISTENERS : 리스너 들의 목록이고, 호스트/ip 로 구성한다. 해당 옵션을 사용하지 않으면 모든 인터페이스에서 수신 할 수 있다. 기본값. 0.0.0.0
  • KAFKA_ADVERTISED_LISTENERS : kafka 브로커를 가리키는 사용 가능 주소로 초기연결시에 클라이언트에 전달되는 메타 데이터
  • KAFKA_DEFAULT_REPLICATION_FACTOR : 자동으로 생성되는 topic의 기본 복제 수
  • KAFKA_NUM_PARTITIONS : 토픽이 몇 개의 파티션으로 생성되는지. 기본 값은 1개이다. 토픽의 파티션 개수는 증가만 가능하고 감소될 수 없다.

monitor

0개의 댓글