公司线上B2B业务运行很多开源组件,其中有监控数据库变化的canal,最近因为该组件出现了一些故障,领导要求测试同类型的组件Debezium和maxwell,这里我暂不做几个工具的对比,我们先学习一下Debezium吧。
Debezium是什么?
Debezium是一个分布式平台,它将您现有的数据库转换为事件流,因此应用程序可以看到数据库中的每一个行级更改,并立即做出响应。Debezium构建在ApacheKafka之上,并提供Kafka连接兼容的连接器来监视特定的数据库管理系统。
Debezium在Kafka日志中记录数据更改的历史,您的应用程序将从这里使用它们。这使您的应用程序能够轻松、正确、完整地使用所有事件。即使您的应用程序停止(或崩溃),在重新启动时,它将开始消耗它停止的事件,因此它不会错过任何东西。
监控数据库,并且在数据变动的时候获得通知一直是很复杂的事情。
debezium支持DDL和DML的操作日志同步。
Debezium架构
最常见的是,Debezium是通过ApacheKafka连接部署的。KafkaConnect是一个用于实现和操作的框架和运行时。
源连接器,如Debezium,它将数据摄取到Kafka和接收连接器,它将数据从Kafka主题传播到其他系统。
下图显示了一个基于Debezium的CDC管道的架构:
使用的技术
debezium: