kafka 실습

oneofakindscene·2021년 7월 25일
0

kafka

목록 보기
2/4

Docker를 활용한 실습환경 구축

1. zookeeper <> kafka에 고정 ip를 주기위한 작업 => network 만들어주기

docker network create -d bridge --subnet 10.10.20.0/24 --gateway 10.10.20.1 dockernet

command의 의미

  • 위 command는 docker network를 새로 만드는데
  • driver는 bridge로하고
  • subnet옵션을 통해서 고정 ip 주소를 10.10.20.0 ~ 10.10.20.255까지 줄 수있음
  • gateway값은 10.10.20.1 로 지정함
  • network 이름은 dockernet으로 함

옵션 설명

  • -d 옵션 : 어떤 driver로 할지 입력해준다(Driver to manage the Network)
    • 네트워크 드라이브로는 bridge, host, none, container, overlay등이 있다
  • --subnet : 10.10.20.0/24 => 10.10.20.0 ~ 10.10.20.n까지 사용할수 있고, "/24" netmask가 24라는 뜻
  • --gateway : gateway를 지정

2.docker-compose로 환경 구축하기

$ cd [docker-compose.yml파일있는경로]
$ docker-compose up -d

docker-compose.yml 파일 내용

version: '3'

services:
  zookeeper:
    image: wurstmeister/zookeeper
    container_name: zookeeper
    ports:
       - "28080:2181"
    networks:
      dockernet:
        ipv4_address: 10.10.20.141
  kafka:
    image: wurstemister/kafka
    container_name: kafka
    depends_on:
      - zookeeper
    ports:
      - "9092"
    environment:
      KAFKA_ADVERTISED_HOST_NAME: 10.10.20.142
      KAFKA_ZOOKEEPER_CONNECT: zookeeper:2181
    networks:
      dockernet:
        ipv4_address: 10.10.20.142
networks:
  dockernet:
    external: true

3. kafka 컨테이너 확인

# kafka 컨테이너에 접속하기
$ docker exec -it kafka ash

# kafka 컨테이너에서 "test"라는 이름의 topic 생성해보기
$ kafka-topics.sh --create --bootstrap-server 10.10.20.142:9092 --replication-factor 1 --partitions 3 --topic test

# topic list로 "test"라는 토픽이 정상적으로 만들어졌는지 확인
$ kafka-topics.sh --list --bootstrap-server 10.10.20.142:9092

4. 카프카 프로듀서/컨슈머 실행하기

  • kafka라는 이름의 컨테이너에서 아래 명령어 실행
# 프로듀서 실행
$ kafka-console-producer.sh --bootstrap-server 10.10.20.142:9092 --topic test

# 컨슈머 실행
$ kafka-console-consumer.sh --bootstrap-server 10.10.20.142:9092 --topic test --from-beginning
  • (스샷1) 프로듀서 실행 후 데이터 전송한 모습
  • (스샷2) 컨슈머 실행 후 프로듀서에서 전송한 데이터 받은 모습

References

profile
oneofakindscene

0개의 댓글