728x90
docker를 사용한 kafka 클러스터 설정
테스트 환경
호스트명 | 아이피 | 도커 컨테이너 | 비고 |
datanode1 | 192.168.0.101 | zookeeper, kafka(broker) | |
datanode2 | 192.168.0.102 | zookeeper, kafka(broker) | |
datanode3 | 192.168.0.103 | zookeeper, kafka(broker) |
github 소스 : https://github.com/anti1346/multinode-kafka-cluster.git
도커 컨테이너 실행
- datanode1 컨테이너
$ git clone https://github.com/anti1346/multinode-kafka-cluster.git
$ cd multinode-kafka-cluster/node1
$ docker-compose up -d; docker-compose logs -f
- datanode2 컨테이너
$ git clone https://github.com/anti1346/multinode-kafka-cluster.git
$ cd multinode-kafka-cluster/node2
$ docker-compose up -d; docker-compose logs -f
- datanode3 컨테이너
$ git clone https://github.com/anti1346/multinode-kafka-cluster.git
$ cd multinode-kafka-cluster/node3
$ docker-compose up -d; docker-compose logs -f
Kafka Web UI(Kafdrop)
- Kafdrop은 Kafka 주제를 보고 소비자 그룹을 탐색하기 위한 웹 UI입니다. 이 도구는 브로커, 주제, 파티션, 소비자와 같은 정보를 표시하고 메시지를 볼 수 있도록 합니다
- http://datanode1:9000
728x90
kafka 명령어
- [kafka2] 컨테이너 접속
$ docker-compose ps
Name Command State Ports
-----------------------------------------------------------------------------------------------------------------------
kafka2 /etc/confluent/docker/run Up 0.0.0.0:9092->9092/tcp
zookeeper2 /etc/confluent/docker/run Up 0.0.0.0:2181->2181/tcp, 0.0.0.0:2888->2888/tcp, 0.0.0.0:3888->3888/tcp
#kafka2 컨테이너 진입
$ docker-compose exec kafka2 /bin/bash
[appuser@kafka2 ~]$
- [kafka3] 컨테이너 접속
$ docker-compose ps
Name Command State Ports
-----------------------------------------------------------------------------------------------------------------------
kafka3 /etc/confluent/docker/run Up 0.0.0.0:9092->9092/tcp
zookeeper3 /etc/confluent/docker/run Up 0.0.0.0:2181->2181/tcp, 0.0.0.0:2888->2888/tcp, 0.0.0.0:3888->3888/tcp
#kafka3 컨테이너 진입
$ docker-compose exec kafka3 /bin/bash
[appuser@kafka3 ~]$
- [kafka2] 토픽(topic) 리스트 확인
$ kafka-topics --list --bootstrap-server localhost:9092
__consumer_offsets
test
- [kafka2] 토픽(topic) 생성
$ kafka-topics --create --bootstrap-server localhost:9092 --replication-factor 1 --partitions 1 --topic scbyun-topic
Created topic scbyun-topic.
$ kafka-topics --list --bootstrap-server localhost:9092
__consumer_offsets
scbyun-topic
test
- [kafka2] 토픽(topic) 상세 보기
$ kafka-topics --describe --bootstrap-server localhost:9092 --topic scbyun-topic
Topic: scbyun-topic TopicId: jqqkyhYCSWyeVK61NUKL-Q PartitionCount: 1 ReplicationFactor: 1 Configs:
Topic: scbyun-topic Partition: 0 Leader: 3 Replicas: 3 Isr: 3
- [kafka2] 토픽에 데이터 넣기(producer)
$ kafka-console-producer --broker-list localhost:9092 --topic scbyun-topic
>
- [kafka3] 토픽의 데이터 확인(consumer)
$ kafka-console-consumer --bootstrap-server localhost:9092 --topic scbyun-topic --from-beginning
메세지 내용 | ||
프로듀서(producer) | 메세지를 생산하는 주체 | >HI |
컨슈머(consumer) | 메세지를 소비하는 주체 | HI |
- [kafka3] 컨슈머 그룹(consumer groups) 리스트 확인
$ kafka-consumer-groups --bootstrap-server localhost:9092 --list
Kafdrop을 통해 웹 브라우저에서 메세지 내용을 확인할 수 있다.
728x90
'리눅스' 카테고리의 다른 글
FTPS(FTP + SSL/TLS) 서버를 구성하는 방법(vsftpd) (0) | 2021.11.18 |
---|---|
[리눅스] 도커 네트워크(bridge) 생성 (0) | 2021.11.17 |
JVM(JAVA) Option의 목록과 설명 (0) | 2021.11.11 |
[리눅스] SWAP Memory (0) | 2021.11.11 |
[리눅스] GitLab 컨테이너 레지스트리 사용하기 (0) | 2021.11.09 |