变更数据捕获CDC几种应用场景 - RTInsights

22-04-03 banq

在现代微服务驱动架构中,CDC 通过提供连接传统数据库与云原生、事件驱动架构的桥梁而获得了新的重要性。
变更数据捕获 (CDC) 是一种数据集成模式,用于跟踪数据中何时以及发生了哪些变化,然后提醒其他必须响应这些变化的系统和服务。CDC 帮助维护所有依赖数据的系统的一致性和功能。
在现代微服务驱动架构中,CDC 通过提供连接传统数据库与云原生、事件驱动架构的桥梁而获得了新的重要性。使用 CDC,企业可以继续使用其遗留数据库,同时仍然通过新兴技术使用数据。对于新部署,CDC 支持使用有用的模式和模式,如“发件箱”,它允许微服务交换来自数据库事务的整合数据。
有了这些能力,CDC 可以在应用程序开发和现代化中发挥许多作用。以下是 CDC 的几个用例。 

作为遗留应用转型的基石
银行、零售、酒店、物流等许多行业的许多单体应用是事件驱动的。组件之间紧密耦合的传统应用程序依赖于请求驱动的消息传递过程,其中对数据的调用是直接从一个服务到另一个。在单体应用环境中,这些流程是紧密集成的,并在同一个系统上运行。

随着单体被分解成微服务,事件生产者和消费者可能在不同的微服务中。一个微服务向其他微服务发布事件的能力是将核心编程结构推进到分布式计算架构的必要条件。

这就是变更数据捕获的作用。CDC是一个监测和捕获数据变化的系统,以便其他软件能够对这些变化做出反应。CDC 捕获数据库表的行级变化,并将相应的变化事件传递给数据流总线。应用程序可以读取这些变化事件流并访问这些变化事件。

使用变更数据采集加快应用开发和部署
这些企业处理其现代化工作的方法之一是,从单体部署迁移到事件驱动架构(EDA)。他们正在使用CDC来监控和捕捉数据的变化,以便EDA的其他部分能够做出相应的反应。

EDA和CDC的一个流行组合使用Debezium和Kafka在微服务之间迁移数据和流媒体事件。Debezium是一个开源的CDC平台,它监控数据库日志以识别变化,这意味着它甚至不需要对数据库本身进行写入访问--只需允许Debezium访问日志,它就可以开始工作,捕捉变化并添加到事件流。

这极大地简化了第一次开发和部署现代化应用程序的过程。不用担心破坏传统数据库--只需用CDC过滤出所需的列,并将其放入事件流中。

随后的开发也变得更快,因为团队可以在微服务上建立新的功能,只对基本的基于变化的事件做出反应。
 

利用变更数据采集扩展流媒体项目
变更数据捕获帮助组织实现应用程序的现代化,并有效地扩展它们。使用微服务方法来实现现代化和构建应用程序,组织可以对现有的前端应用程序进行快速更改并创建新的应用程序。由于变更数据捕获软件只处理数据变化,因此消耗的资源较少,这些应用程序可以保持其性能,并在没有大规模基础设施建设的情况下进行扩展。

CDC与另外一个行业趋势非常吻合。可组合的企业,即在不同的应用程序中重复使用实现单一流程或步骤的代码,正在崛起。在云原生开发的灵活性基础上,特定的流程或业务功能被标准化,并可在许多应用程序中重复使用。

赋能实时应用程序
变更数据采集让任何类型的应用程序在对数据变化作出反应时都能利用低延迟的优势。这是实时系统中的一个重要元素。其使用的一个具体例子是保持搜索索引的更新,以便人们可以在考虑到任何实时更新的情况下进行全文搜索。它还可以被用作企业内部传统数据库进入云端的通道。例如,它可以用来从企业内部的传统数据库中获取数据,并将其插入云数据仓库中。在这个用例中,CDC可以让企业建立这样一个数据管道,而且它的端到端延迟非常低。

当更新一个源数据库(可以是任何关系型数据库,如Oracle、Microsoft SQL Server、Postgres或MySQL)时,企业可能需要更新多个相关资源,如缓存和搜索索引。一个简单的方法是需要升级应用程序以同时更新这些资源。然而,试图将这些改变的数据一致地写入一个以上的目标中,会带来许多挑战和协调开销。CDC避免了双重写入这样的问题,而是同时准确地更新资源。