Debezium 是一个开源的分布式平台,用于捕获数据库变化数据(Change Data Capture, CDC)。允许用户实时地从数据库中捕捉到数据的变化(如插入、更新和删除操作),并将这些变化以结构化的数据流的形式提供给其他系统进行处理和分析。Debezium是基于Apache Kafka 的,因此常用于构建事件驱动的应用程序架构。
架构和实现原理
- Kafka Connect插件方式
以插件的形式,部署在 Kafka Connect 上,在上图中,中间的部分是 Kafka Broker,而 Kafka Connect 是单独的服务,需要下载 debezium-connector-mysql 连接器,解压到服务器指定的地方,然后在 connect-distribute.properties 中指定连接器的根路径,即可使用。
- Debezium Server
Debezium 的另一种部署方法是使用Debezium 服务器。Debezium Server是一个可配置、开箱即用的应用程序。通过Debezium server,可以将源数据库流式变化事件同步到各种不同的消息基础设施。
- 作为嵌入式引擎
使用Debezium连接器的另一种方法是嵌入式引擎。在这种情况下,Debezium不会通过Kafka Connect运行,而是作为一个嵌入到定制Java应用程序中的库运行。这对于在应用程序内部使用更改事件非常有用,而不需要部署完整的Kafka和Kafka连接集群,或者将更改流到其他消息传递代理(如Amazon Kinesis)。