mongodb使用debezium

前置

服务器上需要安装jdk11
jdk下载地址

kafka安装

官网下载地址

安装教程

debezium 安装

运行 Debezium 连接器需要 Java 11 或更高版本

Debezium 并不是一个独立的软件,而是很多个 Kafka 连接器的总称。这些 Kafka 连接器分别对应不同的数据库,比如 MySQL、Oracle 等。按 Kafka 连接器的常见命名规则,可能我们会把它们叫做 MySQL Kafka Source Connector 之类。

部署

1.下载对应版本的debezium插件

插件地址

2.文件解压

将下载的文件解压,将解压后的文件放到kafka的plugin文件夹下(该plugin文件夹为自己创建的plugin文件夹)*,例如

3. 通过 kafka connect部署

kafka connect有两种部署方式,一是单机部署,二是分布式部署。单机部署配置kafka/config/connect-standalone.properties 文件,分布式部署则配置kafka/config/connect-distributed.properties。分布式部署支持通过rest api管理connector

此处是单机部署,配置文件为kafka/config/connect-standalone.properties,主要修改以下内容:

yaml 复制代码
# plugin.path=/usr/local/share/java,/usr/local/share/kafka/plugins,/opt/connectors,
plugin.path=/usr/local/kafka/plugin

4.启动kafka-connect

需要先启动kafka

yaml 复制代码
bin/connect-standalone.sh config/connect-standalone.properties

5.创建对应的debezium配置文件

curl -X POST http://${debezium所在服务器}:8083/connectors

复制代码
{
	"name": "cdc-connector",
	"config": {
		"connector.class": "io.debezium.connector.mongodb.MongoDbConnector",
		"mongodb.connection.string": "mongodb://root:[email protected]:27017,192.168.2.19:27017/?authSource=admin",
		"collection.include.list": "db_cdc_1.c_cdc_2",
		"topic.prefix": "mycdc"
	}
}

重点参数

参数 描述
connector.class 固定值io.debezium.connector.mongodb.MongoDbConnector
mongodb.connection.string mongodb连接信息
collection.include.list 需要监听的具体collection
topic.prefix kafkaTopic前缀

其他未使用参数

参数 描述
database.include.list 需要监听的具体database
database.exclude.list 不监听的database(不要与database.include.list填写相同的db)
collection.exclude.list 不监听的collection(不要与collection.include.list填写相同的collection)

更多参数请参考

相关推荐
banzhenfei40 分钟前
xp_cmdshell bcp 导出文件
java·数据库·sql
CodeJourney.44 分钟前
ChemBlender:科研绘图创新解决方案
数据库·人工智能·信息可视化·excel
笨蛋不要掉眼泪2 小时前
SpringAOP
java·数据库·spring·log4j
IvanCodes2 小时前
九、HQL DQL七大查询子句
大数据·数据库·hive
Channing Lewis2 小时前
如何判断一个网站后端是用什么语言写的
前端·数据库·python
難釋懷2 小时前
Android开发-数据库SQLite
android·数据库·sqlite
码农捻旧2 小时前
解决Mongoose “Cannot overwrite model once compiled“ 错误的完整指南
javascript·数据库·mongodb·node.js·express
tanyyinyu3 小时前
Python函数返回值的艺术:为何True/False是更优实践及例外情况分析
运维·数据库·python
大新新大浩浩3 小时前
记录一下seata后端数据库由mariadb10切换到mysql8遇到的SQLException问题
数据库
zc.z3 小时前
微服务如何实现服务的高并发
数据库·微服务·架构