Change data capture
Architecture¶
Prerequisites¶
1.Mysql
Enable MySQL binlog.¶
server-id=<server-id, or ignore this item>
log_bin=mysql-bin
binlog_format=row
binlog_row_image=full
expire_logs_days=10
3.Kafka
Source¶
register source:
PODNAME=`kubectl -n common get pod -l app=debezium-controller | awk 'NR>1{print $1}'`
kubectl -n common exec -it $PODNAME -- curl -i -X POST -H "Accept:application/json" -H "Content-Type:application/json" http://debezium:8083/connectors/ -d @/controller/source-mysql-mariadb.storage.json
Sink¶
register sink:
PODNAME=`kubectl -n common get pod -l app=debezium-controller | awk 'NR>1{print $1}'`
kubectl -n common exec -it $PODNAME -- curl -i -X POST -H "Accept:application/json" -H "Content-Type:application/json" http://debezium:8083/connectors/ -d @/controller/sink-mongodb-mariadb.storage.account-address.json
How can I operate registered connectors?
list all registered connectors:
PODNAME=`kubectl -n common get pod -l app=debezium-controller | awk 'NR>1{print $1}'`
kubectl -n common exec -it $PODNAME -- curl -X GET -H "Accept:application/json" -H "Content-Type:application/json" http://debezium:8083/connectors
delete particular connector:
PODNAME=`kubectl -n common get pod -l app=debezium-controller | awk 'NR>1{print $1}'`
kubectl -n common exec -it $PODNAME -- curl -X DELETE -H "Accept:application/json" -H "Content-Type:application/json" http://debezium:8083/connectors/<connector-name>