2022. 4. 13. 16:57ㆍ[Kafka]/[Kafka_CDC]
구축 목표]
실시간으로 DB의 데이터가 변할 때 kafka 를 통해 consumer 에게 메세지 보내기.
구현 예상도]
구축 환경
window - Producer ]
- DB : MongoDB
- zookeeper server
- Kafka server
- Kafka connect
- Debezium connector
Linux - virtualBox - Consumer ]
- Kafka server
이번에는 Mongodb를 설치해보겠습니다.
Mongodb는 tutorial의 Mongodb를 사용하였습니다.
Debezium 에서 제공하는 tutorial
https://debezium.io/documentation/reference/stable/tutorial.html
자세한 내용은 git 참고
https://github.com/debezium/debezium-examples/tree/main/tutorial
해당 git 에서 docker-compose-mongodb.yaml 파일 선택
version: '2'
services:
zookeeper:
image: quay.io/debezium/zookeeper:${DEBEZIUM_VERSION}
ports:
- 2181:2181
- 2888:2888
- 3888:3888
kafka:
image: quay.io/debezium/kafka:${DEBEZIUM_VERSION}
ports:
- 9092:9092
links:
- zookeeper
environment:
- ZOOKEEPER_CONNECT=zookeeper:2181
mongodb:
image: quay.io/debezium/example-mongodb:${DEBEZIUM_VERSION}
hostname: mongodb
ports:
- 27017:27017
environment:
- MONGODB_USER=debezium
- MONGODB_PASSWORD=dbz
connect:
image: quay.io/debezium/connect:${DEBEZIUM_VERSION}
ports:
- 8083:8083
links:
- kafka
- mongodb
environment:
- BOOTSTRAP_SERVERS=kafka:9092
- GROUP_ID=1
- CONFIG_STORAGE_TOPIC=my_connect_configs
- OFFSET_STORAGE_TOPIC=my_connect_offsets
- STATUS_STORAGE_TOPIC=my_connect_statuses
# For testing newer connector versions, unpack the connector archive into this
# directory and uncomment the lines below
# volumes:
# - ./debezium-connector-mongodb:/kafka/connect/debezium-connector-mongodb
해당 compose 에는
mongodb 뿐 만 아니라 튜토리얼 용 kafka, connector, zookeeper 등이 다 들어있습니다.
제가 테스트를 해본 결과, 메세지 큐를 확인은 할 수 있지만, 다른 서버에서 메시지를 구독할 수 없어서
( kafka server 구동시 권한이 없었습니다.)
DB설정 파일만 가져와 진행하였습니다.
1. Docker Compose 작성]
원하는 위치에 docker-compse-mongodb.yaml 파일을 만들고
위의 내용을 붙여넣고 저장합니다.
PowerShell 로 해당 위치로 이동합니다.
이제 Using MongoDB 부분을 참고하여 진행하겠습니다.
https://github.com/debezium/debezium-examples/tree/main/tutorial#using-mongodb
docker-compse-mongodb.yaml 파일 내부에 DEBEZIUM_VERSION 을 전부 1.9로 변경합니다
2. docker 로 compose 설치]
Docker 미설치시 다음 포스트 참고
https://yn971106.tistory.com/73?category=1003066
yaml 파일 이 있는 위치에서 다음 명령어 실행
※ 주의 이전의 모든 서버는 끄고 진행해야 함
docker-compose -f docker-compose-mongodb.yaml up
docker Desktop app 에서
Mongodb 만 실행시킬 겁니다.
같은 위치에서 다음 명령어 실행
docker-compose -f docker-compose-mongodb.yaml exec mongodb bash -c '/usr/local/bin/init-inventory.sh'
tutorial 에서 제공하는 기본 정보가 입력됩니다.
localhost:27017 에 tutorial 용 DB가 설치된것입니다.
다음에는 DB에 연결할 connector을 설치해 보겠습니다.
'[Kafka] > [Kafka_CDC]' 카테고리의 다른 글
[Kafka_CDC]_kafka CDC 기능으로 변경 데이터 - consumer MongoDB 저장(5단계. CDC log DB저장) (0) | 2022.04.17 |
---|---|
[Kafka_CDC]_Kafka CDC 구현_(4단계- CDC 확인) (0) | 2022.04.13 |
[Kafka_CDC]_Kafka CDC 구현_(3단계- Connector설치) (0) | 2022.04.13 |
[Kafka_CDC]_Kafka CDC 구현_(1단계- 설계) (0) | 2022.04.13 |