공식 Docs : https://www.mongodb.com/docs/kafka-connector/current/tutorials/source-connector/
git clone https://github.com/mongodb-university/kafka-edu.git
* json파일로 connector 에 관한 내용을 세팅
1. cx ~.json 으로 connector 적용
2. del <connector name> 으로 connector 삭제
# simplesource.json 파일 예시
{
"name": "mongo-simple-source",
"config": {
"connector.class": "com.mongodb.kafka.connect.MongoSourceConnector",
"connection.uri": "mongodb://mongo1",
"database": "Tutorial1",
"collection": "orders"
}
}
# mongod.conf 파일에 replica 설정!
replication:
oplogSizeMB: 2000
replSetName: "rs0"
{
"name": "mongo-simple-source",
"config": {
"connector.class": "com.mongodb.kafka.connect.MongoSourceConnector",
"connection.uri": "mongodb://<로컬 IP>:27017",
"database": "Tutorial1", # 변경 사항 확인할 DB
"collection": "orders" # 변경 사항 확인할 collection
}
}
# 조회
curl -X GET "http://localhost:8083/connectors"
# 생성
curl -X POST -H "Content-Type application/json" -d @<connector.json 파일명> http://localhost:8083/connectors
# 삭제
curl -X DELETE "http://localhost:8083/
/bin/kafka-console-consumer --bootstrap-server broker:29092 --topic <DB명>.<collection명> --from-beginning
* --from-beginning 옵션 : Topic에 쌓인 모든 메시지를 처음부터 로드
* mongodb-kafka-connector에서 <db.coll> 은 topic명으로 사용될 수 있다.
*DB 수정되자마자 Topic에 쌓이는 것을 확인할 수 있다.
* docker container 내부에서 localhost:port를 쓴다면, 이때의 localhost는 외부 로컬 호스트(docker 실행한 로컬 컴퓨터)가 아닌 docker 내부의 로컬호스트를 의미.
* 우분투에서는 로컬 컴퓨터의 외부 IP로 넣어주기, 윈도우와 mac에서는 host.docker.internal 을 ip로 사용하면 된다고 함!
+ 그래도 안된다면 로컬 컴퓨터 mongod.conf 파일 확인.
net:
port: 27017
bindIp: 0.0.0.0 --> 이 부분이 0.0.0.0 맞는지 확인! (외부 접근 허용)