๊ด€๋ฆฌ ๋ฉ”๋‰ด

๐‘†๐‘ข๐‘›๐‘ โ„Ž๐‘–๐‘›๐‘’ ๐‘Ž๐‘“๐‘ก๐‘’๐‘Ÿ ๐‘Ÿ๐‘Ž๐‘–๐‘›โœง

[Docker] Docker์— Kafka ๋„์›Œ์„œ, ํ† ํ”ฝ ์ƒ์„ฑํ•˜๊ณ  ๋ฉ”์‹œ์ง€๋ฅผ ๋ณด๋‚ด๊ธฐ ๋ณธ๋ฌธ

๐—ฃ๐—ฟ๐—ผ๐—ด๐—ฟ๐—ฎ๐—บ๐—บ๐—ถ๐—ป๐—ด๐Ÿ’ป/๐ƒ๐จ๐œ๐ค๐ž๐ซ

[Docker] Docker์— Kafka ๋„์›Œ์„œ, ํ† ํ”ฝ ์ƒ์„ฑํ•˜๊ณ  ๋ฉ”์‹œ์ง€๋ฅผ ๋ณด๋‚ด๊ธฐ

๐ŸคRyusun๐Ÿค 2024. 3. 21. 20:47

Docker์— Kafka๋ฅผ ์‹คํ–‰์‹œ์ผœ ํ† ํ”ฝ ์ƒ์„ฑํ•˜์—ฌ ๋ฉ”์„ธ์ง€๋ฅผ ๋ณด๋‚ด๊ณ  ๋ฐ›์•„๋ณผ๊ฒƒ์ด๋‹ค.

 


 

Kafka๋ฅผ ๋„์ปค์— ๋„์šฐ๊ธฐ ์œ„ํ•ด ์ปดํฌ์ฆˆ ํŒŒ์ผ์„ ์ƒ์„ฑํ•œ๋‹ค.

๋„์ปค ์ปดํฌ์ฆˆ ํŒŒ์ผ์— ํ•ด๋‹น ๋‚ด์šฉ์„ ์ถ”๊ฐ€ํ•ด์ค€๋‹ค.

version: '3.8'
services:
  zookeeper:
    image: wurstmeister/zookeeper:latest
    container_name: zookeeper
    ports:
      - "2181:2181"
  kafka:
    image: wurstmeister/kafka:latest
    container_name: kafka
    ports:
      - "9092:9092"
    environment:
      KAFKA_ADVERTISED_HOST_NAME: 127.0.0.1
      KAFKA_ZOOKEEPER_CONNECT: zookeeper:2181
    volumes:
      - /var/run/docker.sock:/var/run/docker.sock

 

์•„๋ž˜ ๋ช…๋ น์–ด๋ฅผ ์‹คํ–‰ํ•˜์—ฌ Docker Compose๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์—ฌ๋Ÿฌ ์ปจํ…Œ์ด๋„ˆ๋ฅผ ์ •์˜ํ•˜๊ณ  ์‹คํ–‰ํ•˜์ž.

 

docker-compose -f docker-compose-local.yml up

 

 

ํ•„์ž๋Š” ์šด์˜ํ™˜๊ฒฝ์„ ์œ„ํ•œ docker-compose.yml ํŒŒ์ผ๊ณผ ๊ฐœ๋ฐœ ํ™˜๊ฒฝ์„ ์œ„ํ•œ docker-compse-local.yml๊ฐ€ ์žˆ๊ณ , ํ˜„์žฌ 4๊ฐœ ์ปจํ…Œ์ด๋„ˆ๋ฅผ ๊ตฌ์„ฑํ–ˆ๊ณ  ์ž˜ ์‹คํ–‰๋˜์—ˆ๋‹ค.

 

์ด์ œ ์นดํ”„์นด ์ปจํ…Œ์ด๋„ˆ์— ์ ‘์†ํ•ด์„œ ํ† ํ”ฝ์„ ์ƒ์„ฑํ•˜๊ณ , ์ปจ์Šˆ๋จธ๋ž‘ ํ”„๋กœ๋“€์„œ๋กœ ํ™•์ธํ•ด ๋ณผ๊ฒƒ์ด๋‹ค.

//ํ˜„์žฌ ๊ฐ€๋™์ค‘์ธ ๋„์ปค ํ™•์ธ
docker ps

// ๋„์ปค ์ปจํ…Œ์ด๋„ˆ ์ ‘์†
docker exec -it [Container ID] /bin/bash

 

topic1์ด๋ผ๋Š” ์ด๋ฆ„์ธ ํ† ํ”ฝ์„ ์ƒ์„ฑํ•ด๋ณด๊ณ  ํ™•์ธํ•ด๋ณด์ž

// ํ† ํ”ฝ ์ƒ์„ฑ
kafka-topics.sh --create --topic topic1 --bootstrap-server localhost:9092 --replication-factor 1 --partitions 3

// ํ† ํ”ฝ ํ™•์ธ
kafka-topics.sh --list --bootstrap-server localhost:9092

// ํ† ํ”ฝ ์‚ญ์ œ
kafka-topics.sh --delete --bootstrap-server kafka:9092 --topic topic1

 

์ž˜ ์ƒ์„ฑ๋˜์—ˆ๋‹ค. 

 

์ปจ์Šˆ๋จธ ์ƒ์„ฑ

๋ฉ”์„ธ์ง€๋ฅผ ๋ฐ›์„ ์ปจ์Šˆ๋จธ๋ฅผ ์ƒ์„ฑํ•˜์ž

์ปจ์Šˆ๋จธ๋ฅผ ์‹คํ–‰์‹œํ‚ค๊ธฐ ์œ„ํ•ด์„   ๋„์ปค์—์„œ ์นดํ”„์นด ์„ค์น˜ ๊ฒฝ๋กœ๋กœ ๊ฐ€์ค˜์•ผ ํ•œ๋‹ค.

cd /opt/kafka_2.13-2.8.1/bin/
./kafka-console-consumer.sh --topic topic1 --bootstrap-server kafka:9092

 

๊นœ๋นก๊นœ๋นก๊ฑฐ๋ฆฌ๋ฉด ์ •์ƒ ์ž‘๋™๋œ ๊ฑฐ๋‹ค

 

ํ”„๋กœ๋“€์„œ ์‹คํ–‰

์ƒˆ ํ„ฐ๋ฏธ๋„์„ ์—ด์–ด ๋ฉ”์„ธ์ง€๋ฅผ ์ƒ์„ฑํ•ด์ค„ ํ”„๋กœ๋“€์„œ๋ฅผ ์ƒ์„ฑํ•˜์ž.

cd /opt/kafka_2.13-2.8.1/bin/ ๊ฒฝ๋กœ์—์„œ ์•„๋ž˜ ๋ช…๋ น์–ด๋ฅผ ์ž…๋ ฅํ•ด์„œ ํ”„๋กœ๋“€์„œ๋ฅผ ์ƒ์„ฑํ•œ๋‹ค.

./kafka-console-producer.sh --topic topic1 --broker-list kafka:9092

 

๊ทธ๋Ÿผ > ๊ฐ€ ๋‚˜์˜จ๋‹ค. ๋ฉ”์„ธ์ง€๋ฅผ ์ž…๋ ฅํ•ด๋ณด์ž.

ํ”„๋กœ๋“€์„œ ํ„ฐ๋ฏธ๋„

 

๊ทธ๋ฆฌ๊ณ  ์ปจ์Šˆ๋จธ๋ฅผ ์ƒ์„ฑํ•œ ํ„ฐ๋ฏธ๋„์— ๊ฐ€๋ณด๋ฉด ๋ฉ”์„ธ์ง€๊ฐ€ ์ž˜ ๋„์ฐฉํ•ด์žˆ๋‹ค!!

์ปจ์Šˆ๋จธ ํ„ฐ๋ฏธ๋„

 

 

 

 

 

 

์ฐธ๊ณ  

https://9hyuk9.tistory.com/92

 

[kafka/Docker] ๋„์ปค๋กœ ์นดํ”„์นด๋ฅผ ๋„์›Œ๋ณด๊ณ , ํ† ํ”ฝ ์ƒ์„ฑ ํ›„ ๋ฉ”์‹œ์ง€๋ฅผ ๋ณด๋‚ด๋ณด์ž.

์นดํ”„์นด๋ž€? ์‹ค์‹œ๊ฐ„์œผ๋กœ ๊ธฐ๋ก ์ŠคํŠธ๋ฆผ์„ ๊ฒŒ์‹œ, ๊ตฌ๋…, ์ €์žฅ ๋ฐ ์ฒ˜๋ฆฌํ•  ์ˆ˜ ์žˆ๋Š” ๋ถ„์‚ฐํ˜• ๋ฐ์ดํ„ฐ ์ŠคํŠธ๋ฆฌ๋ฐ ํ”Œ๋žซํผ์ด๋‹ค. ์ฆ‰, API๋กœ ๋ฐ์ดํ„ฐ๋ฅผ ๋ฐ”๋กœ ์š”์ฒญ์„ ํ•˜๋Š” ๊ฒƒ์ด ์•„๋‹Œ ๋ฏธ๋“ค์›จ์–ด์ธ ์นดํ”„์นด๋ฅผ ๋‘ฌ์„œ ํ”„๋กœ๋“€

9hyuk9.tistory.com