绑定完请刷新页面
取消
刷新

分享好友

×
取消 复制
基于 Kafka 的 CDC 事件流解决方案
2019-10-09 09:02:08

Debezium 一种借助 Kafka 将数据变更发布成事件流的 CDC(变更数据捕获)实现。

什么是Debezium?

Debezium是一组分布式服务,用于捕获数据库中的更改(change data capture,CDC),以便应用程序看到这些更改并作出响应。Debezium在一个变更事件流中记录每个数据库表中所有行级别的变更,应用程序只需读取这些流,以查看变更事件的发生,并且和他们发生时的顺序一致。

Debezium是一个分布式平台,它将您现有的数据库转换为事件流,这样应用程序就可以立即看到并响应数据库中的每一行更改。Debezium构建在Apache Kafka之上,并提供KafkaConnect兼容连接器,用于监视特定的数据库管理系统。

Debezium在Kafka日志中记录数据更改的历史,您的应用程序从那里使用它们。这使您的应用程序能够轻松地正确和完整地使用所有事件。即使您的应用程序停止(或崩溃),在重新启动时,它将从上次停止的地方开始,这样它就不会遗漏任何东西。

Debezium是一个开源分布式平台,用于捕获数据库的更改。启动它,指向你的数据库,你的应用程序就可以开始响应所有其他应用程序提交给你的数据库的插入、更新和删除操作。Debezium耐用且快速,因此您的应用程序可以快速响应,即使出现问题,也不会错过任何活动。

用你的数据做更多的事情

你的数据总是在变化。Debezium允许应用程序在每次数据更改时做出响应,而不必更改修改数据的应用程序。Debezium不断地监视数据库,并让任何应用程序按照提交给数据库的相同顺序流处理每一个行级别的更改。使用事件流清除缓存、更新搜索索引、生成派生视图和数据、保持其他数据源同步等等。事实上,将该功能从应用程序中提取出来,放到单独的服务中。

简化你的应用程序

既然Debezium可以监控你的数据,为什么要让一个应用程序更新数据库、更新搜索索引、发送通知和发布消息呢?当事情出问题时,做出正确的处理,是很困难的,如果你做错了,那些系统中的数据可能会变得不一致。保持简单,并将额外的功能转移到Debezium的独立服务中。

从不错过任何一个关键点

当应用和服务下线进行维护,Debezium会一直监控,这样当你的应用重新启动时,它们就会地回到它们停止的地方。不管怎样,Debezium都会保持事件的顺序和你在数据库中操作时的顺序一致。Debezium确保你总是能看到每一个事件,即使事情出错。

快速的反应

当一切运行顺利时,Debezium是快速高效的。这意味着你的应用和服务可以快速反应。Debezium是在Apache Kafka之上构建的,Apache Kafka是经过验证的、可伸缩的,它可以非常快速地处理大量数据。

基于 Debezium的CDC管道的系统架构

你可以安装并且配置Debezium去监控你的数据库,然后你的应用就可以消费对数据库的每一个行级别(row-level)的更改。

Debezium是一个捕获数据更改(CDC)平台,并且利用Kafka和Kafka Connect实现了自己的持久性、可靠性和容错性。

每一个部署在Kafka Connect分布式的、可扩展的、容错性的服务中的connector监控一个上游数据库服务器,捕获所有的数据库更改,然后记录到一个或者多个Kafka topic(通常一个数据库表对应一个kafka topic)。

这样,更多的客户端可以独立消费同样的数据更改事件而对上游数据库系统造成的影响降到很小(如果N个应用都直接去监控数据库更改,对数据库的压力为N,而用Debezium汇报数据库更改事件到kafka,所有的应用都去消费kafka中的消息,可以把对数据库的压力降到1)。

分享好友

分享这个小栈给你的朋友们,一起进步吧。

唠唠云原生
创建时间:2020-05-11 11:26:03
云原生是一种构建和运行应用程序的方法,是一套技术体系和方法论。云原生(CloudNative)是一个组合词,Cloud+Native。 Cloud表示应用程序位于云中,而不是传统的数据中心;Native表示应用程序从设计之初即考虑到云的环境,原生为云而设计,在云上以佳姿势运行,充分利用和发挥云平台的弹性+分布式优势。
展开
订阅须知

• 所有用户可根据关注领域订阅专区或所有专区

• 付费订阅:虚拟交易,一经交易不退款;若特殊情况,可3日内客服咨询

• 专区发布评论属默认订阅所评论专区(除付费小栈外)

技术专家

查看更多
  • 栈栈
    专家
戳我,来吐槽~