https://github.com/Seungkyu-Han/micro_service_webflux
GitHub - Seungkyu-Han/micro_service_webflux: Webflux 환경에서 MSA의 Saga, Outbox, CQRS, CDC를 연습해보기 위한 리
Webflux 환경에서 MSA의 Saga, Outbox, CQRS, CDC를 연습해보기 위한 리포지토리입니다. - Seungkyu-Han/micro_service_webflux
github.com
저번 포스팅에서 debezium 컨테이너를 생성했었다.
이제 이 debezium을 통해 kafka topic을 만들어보자.
늘 그렇듯, 공식문서를 보면서 한다.
https://debezium.io/documentation/reference/stable/connectors/mongodb.html
Debezium connector for MongoDB :: Debezium Documentation
A long integer value that specifies the maximum volume of the blocking queue in bytes. By default, volume limits are not specified for the blocking queue. To specify the number of bytes that the queue can consume, set this property to a positive long value
debezium.io
해당 항목을 참고하여 Debezium으로 http 요청을 보낸다.
- 그냥 Debezium에서 사용할 이름이다. 토픽이랑 비슷하게 맞추어서 생성하면 된다.
- connector.class는 mongodb를 사용하기 때문에 저 내용 그대로 넣어주면 된다. 데이터베이스마다 다 다르니, 공식문서..를 찾아 들어가서 넣어주면 된다.
- Mongodb 연결 주소이다. 당연히 비밀번호와 계정이 있다면 넣어주어야 하고, replicaSet의 정보도 주어야 한다.
- 토픽 이름의 prefix이다. 저기에 지정한 prefix에 따라 토픽의 이름이 생성된다. prefix가 A이고, B 데이터베이스의 C 컬렉션이면 토픽의 이름은 A.B.C로 생성이 된다.
- 변화를 감지할 데이터베이스이다. B 데이터베이스의 C 컬렉션이면 이 곳에는 B.C로 넣어주면 된다.
일단, debezium을 통해 토픽을 작성하는데 필요한 필수정보는 끝났다.
만약 더 추가할 내용이 있다면 공식문서를 통해 추가하도록 하자.
이제 POST로 debezium에게 요청하면 된다.
예시를 보면
POST http://localhost:8083/connectors/
Content-Type: application/json
{
"name": "order-payment-request-connector",
"config": {
"connector.class": "io.debezium.connector.mongodb.MongoDbConnector",
"tasks.max": "1",
"mongodb.connection.string": "",
"mongodb.authSource": "admin",
"collection.include.list": "orders.payment_outboxes",
"topic.prefix": "debezium",
"tombstones.on.delete": "false"
}
}
이렇게 요청하면 된다.
나는 Intellij Http를 통해 요청했다.
요청을 보내고 kafka-ui에 보면
connect-status 토픽에
이런 식으로 무슨 내용이 와있다.
이러면 설정이 된것이다.
만약 모든 topic을 조회하고 싶으면
GET http://localhost:8083/connectors/
해당 uri로 요청하면 된다.
그러면 모든 debezium의 모든 토픽이 응답된다.
만약 토픽을 삭제하고 싶다면
DELETE http://localhost:8083/connectors/{이름}
여기로 DELETE 요청을 보내면 된다.
이렇게 내가 만든 이름으로 topic이 생성된 것을 볼 수 있다.
이번에는 여기까지만 하고, 다음에는 해당 토픽으로 publish 해보고 subscribe 해보도록 하자.
'MSA' 카테고리의 다른 글
MSA에 CDC 적용을 위한 Debezium kafka listener 생성 (0) | 2025.03.05 |
---|---|
MSA에 CDC 적용을 위한 Debezium 도커 설정 (0) | 2025.03.02 |
MSA에 CQRS 패턴 적용하기 (0) | 2025.03.01 |
MSA에 Outbox 패턴 적용하기 (0) | 2025.02.28 |
MSA에 SAGA 패턴 적용하기 (0) | 2025.02.24 |