关于debezium。kafka和sqlserver的数据同步
直接在官网下载sql server的插件。
下载完后将这个插件解压到linux里面。
路径其实是无所谓的,我在kafka目录下,创建了一个connect目录,专门放置这些插件
然后去kafka的config目录下,修改connect-distributed.properties文件
主要修改这几个点:
kafka集群路径
刚才存放sqlserver插件的路径
然后就可以去kafka的bin目录下,启动connect-distributed.sh
bin/connect-distributed.sh config/connect-distributed.properties
如果想要后台运行
bin/connect-distributed.sh -daemon config/connect-distributed.properties
然后我们就可以通过 http请求,对插件进行操作。下面我在postman软件中进行操作
hadoop102:8083/connector-plugins
ip地址设置为自己的ip。
如果可以看见这个“io.debezium....”。就证明插入成功了。
hadoop102:8083/connectors
get请求可以获得目前设置的链接有哪些。我们通过这个链接来设计sqlserver到kafka的数据传输。
如果使用post请求,则是增加connect
{ "name": "AIS", "config": { "connector.class" : "io.debezium.connector.sqlserver.SqlServerConnector", "tasks.max" : "1", "topic.prefix" : "AIS", "database.hostname" : "192.168.180.144", "database.port" : "1433", "database.user" : "sa", "database.password" : "000000", "database.names" : "AIS202303", "table.include.list":"dbo.Tooo,dbo.T_jjj", "schema.history.internal.kafka.bootstrap.servers" : "hadoop102:9092", "schema.history.internal.kafka.topic": "AIS", "database.encrypt": "false", "snapshot.mode":"initial", "snapshot.locking.mode": "none", "snapshot.isolation.mode": "read_committed", "transforms":"Reroute", "transforms.Reroute.type":"io.debezium.transforms.ByLogicalTableRouter", "transforms.Reroute.topic.regex":".*", "transforms.Reroute.topic.replacement":"topic_db" } }
这个请求则是获得connect的状态,通过name。get请求
hadoop102:8083/connectors/AIS/status
这样就算成功了。
后面则是删除这connect。
hadoop102:8083/connectors/AIS