背景
前端时间介绍过debezium的架构,其是基于Kafka Connect实现的。官方也推荐运行在Kafka Connect集群中,这样能最大程度的保证高可用。Debezium 将监控进程或连接器分布在多台机器上,以便在出现任何问题时可以重新启动连接器。但是,我们还是打算在我们的应用程序中以jar的方式进行集成。
1、版本选择
版本更新还是比较快的,上次技术预研使用的1.6版本。本次逻辑打算 采用最新的版本1.9.6。此版本依赖还是比较多的,官方有张图:

需要jdk11+,我们用的是openjdk。由于使用的是基于spring cloud的微服务架构。上面所说的第三方依赖,最好都通过升级spring cloud、boot版本来实现。参考pom依赖配置:
<properties> <java.version>11</java.version>
<spring-cloud-alibaba.version>2021.0.4.0</spring-cloud-alibaba.version>
<spring-cloud.version>2021.0.4</spring-cloud.version>
</properties>
<dependencyManagement>
<dependencies>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-dependencies</artifactId>
<version>${spring-cloud.version}</version>
<type>pom</type>
<scope>import</scope>
</dependency>
<dependency>
<groupId>com.alibaba.cloud</groupId>
<artifactId>spring-cloud-alibaba-dependencies</artifactId>
<version>${spring-cloud-alibaba.version}</version>
<type>pom</type>
<scope>import</scope>
</dependency>
</dependencies>
</dependencyManagement>
Debezium的POM依赖:
<dependency>
<groupId>io.debezium</groupId>
<artifactId>debezium-api</artifactId>
<version>1.9.5.Final</version>
</dependency>
<dependency>
<groupId>io.debezium</groupId>
<artifactId>debezium-embedded</artifactId>
<version>1.9.5.Final</version>
</dependency>
<dependency>
<groupId>io.debezium</groupId>
<artifactId>debezium-connector-mysql</artifactId>
<version>1.9.5.Final</version>
</dependency>
2、参数配置
以jar的方式做集成还是比较简单的,示例代码直接参考官方的即可。但是在官网上,没有找到支持哪些参数。常用的参数:database.include.list、table.include.list。其它的一些参数没有在官方文档中找到说明。大家可以直接查看github上源码方式来查看支持哪些参数。具体的类为:RelationalDatabaseConnectorConfig。

database.include.list、table.include.list是支持正则表达式的。形如如下的配置:
props.setProperty("database.include.list", "device_[0-1]");
3、连接信息
这块官方文档说的非常明确的,以MySQL为例,直接参考官方文档即可。
https://debezium.io/documentation/reference/stable/connectors/mysql.html#mysql-create-events
另外,别的一些疑问,可以参考官方额FAQ,连接如下:https://debezium.io/documentation/faq/
尾记
入门还是比较简单的,尤其是采用jar包集成的方式。效果如何,只能等待生产环境的检验了。踩坑是必须经历的,重要的是如何快速的解决,最终我们能把他应用好,已经是非常好的事情了。
网友评论