什么是Debezium
Debezium 是一组分布式服务,用于捕获数据库中的更改(通过读取数据库日志的方式来完成数据增删改的记录),以便您的应用程序可以看到这些更改并做出响应。Debezium 将每个数据库表中的所有行级更改记录在更改事件流中,应用程序只需读取这些流,即可按更改事件发生的顺序查看更改事件。
更多官网介绍:https://debezium.io/
目前debezium有三种部署方式
- Kafka Connect 模式
Debezium 作为一个 Kafka Connect 的 Source Connector 运行,将数据库的变更事件发送到 Kafka 中。
适用场景:适用于需要将数据库变更事件持久化到 Kafka,并且需要 Kafka Connect 提供的分布式、可扩展和容错能力的场景。
主要特点:可以利用 Kafka 的可靠性和容错性,支持高吞吐量和低延迟的数据传输。 - Debezium Server 模式
简介:Debezium Server 是一个独立的应用程序,它可以将数据库的变更事件流式传输到各种消息传递基础设施,如 Amazon Kinesis、Google Cloud Pub/Sub 或 Apache Pulsar。
适用场景:适用于需要将数据库变更事件发送到非 Kafka 的消息队列或流处理系统的场景。
主要特点:提供了更多的灵活性,可以支持多种不同的消息传递基础设施。 - Embedded Engine 模式
简介:在这种模式下,Debezium 不通过 Kafka Connect 运行,而是作为一个库嵌入到自定义的 Java 应用程序中。
适用场景:适用于需要在应用程序内部直接消费数据库变更事件,而不希望通过 Kafka 进行中转的场景。
主要特点:减少了对外部系统的依赖,适合于轻量级的应用程序或微服务架构。
Debezium特点
- 简单易上手
- 快速稳定,可以扩展,可以通过kafka构建
- 能够监控多种数据库 mysql pgsql等等
Debezium 架构
基于kafka connector部署 Debeziunm
kafka连接器包含两种:
- source connector:负责吧数据发送到kafka(Debezium)
- sink connector:负责吧kafka topic中的数据发送给其他的系统。