kafka 실행시켜보기 (feat. docker)

최준호·2022년 5월 25일
0

kafka

목록 보기
3/4
post-thumbnail

참고
Confluent 공식 문서

🔨Docker로 kafka와 zookeeper 실습

Container 실행

---
version: '3'
services:
  zookeeper:
    image: confluentinc/cp-zookeeper:7.0.1
    container_name: zookeeper
    environment:
      ZOOKEEPER_CLIENT_PORT: 2181
      ZOOKEEPER_TICK_TIME: 2000

  broker:
    image: confluentinc/cp-kafka:7.0.1
    container_name: broker
    ports:
    # To learn about configuring Kafka for access across networks see
    # https://www.confluent.io/blog/kafka-client-cannot-connect-to-broker-on-aws-on-docker-etc/
      - "9092:9092"
    depends_on:
      - zookeeper
    environment:
      KAFKA_BROKER_ID: 1
      KAFKA_ZOOKEEPER_CONNECT: 'zookeeper:2181'
      KAFKA_LISTENER_SECURITY_PROTOCOL_MAP: PLAINTEXT:PLAINTEXT,PLAINTEXT_INTERNAL:PLAINTEXT
      KAFKA_ADVERTISED_LISTENERS: PLAINTEXT://localhost:9092,PLAINTEXT_INTERNAL://broker:29092
      KAFKA_OFFSETS_TOPIC_REPLICATION_FACTOR: 1
      KAFKA_TRANSACTION_STATE_LOG_MIN_ISR: 1
      KAFKA_TRANSACTION_STATE_LOG_REPLICATION_FACTOR: 1

공식 문서에 나와있는 docker-compose.yml 내용을 그대로 복사해서 붙여넣기 했다. 내용은 kafka와 zookeeper를 실행시키고 zookeeper를 그대로 연결해서 띄우는거다. 실제로 로컬에서 일일히 띄우기 귀찮았는데 docker를 사용하면 파일 하나만 실행시키면 자동으로 되는게 너무 편하다.

docker-compose up -d

로 실행시킨다.

만약 여기서 에러가 발생한다면 사용되는 포트를 한번 확인해보자. 나의 경우 9092가 java로 실행되고 있더라... 아마 kafka를 여기서 실행해봤었나보다...

정상적으로 실행되었음을 확인했다.

topic 만들기

docker exec broker kafka-topics --bootstrap-server broker:9092 --create --topic quickstart

kafka 서버인 broker에 topic을 생성하는 명령어를 전달하자.

topic이 생성되었다.

topic에 메세지를 전달해보자

docker exec -it broker kafka-console-producer --bootstrap-server broker:9092 --topic quickstart

명령어를 입력한 뒤

마음대로 텍스트를 작성하면 된다.

나는 다음과 같이 입력했다.

Consumer로 메시지 읽기

docker exec -it broker kafka-console-consumer --bootstrap-server broker:9092 --topic quickstart --from-beginning

다음 명령어로 consumer를 실행시켜 메세지를 읽어보자

가장 처음 나온 ' 세개는 내가 오타로 입력한 값이고 그 이후 값은 잘 나온것을 확인할 수 있었다.

여기까지 docker를 사용하여 kafak에 대한 간단한 사용방법을 학습했다.

profile
해당 주소로 이전하였습니다. 감사합니다. https://ililil9482.tistory.com

0개의 댓글