Debezium 博客

在本篇文章中,我们将讨论一个 CDC-CQRS 管道,它连接了一个规范化的关系型数据库(MySQL)作为命令数据库,以及一个反规范化的 NoSQL 数据库(MongoDB)作为查询数据库,通过 Debezium & Kafka-Streams 实现 DDD Aggregates 的创建。

本文将深入探讨事件溯源、CQRS(命令查询责任分离)、CDC(变更数据捕获)和 Outbox 模式。将清晰地阐述这些解决方案的价值。此外,还将详细解释两种不同的设计,并分析它们的优缺点。

那么,为什么所有这些解决方案都很重要呢?它们很重要,因为许多团队正在构建微服务并将数据分布在多个数据存储中。一个微服务系统可能涉及关系数据库、对象存储、内存缓存,甚至可搜索的数据索引。数据很容易丢失、不同步甚至损坏,从而对关键任务系统造成灾难性后果。

对于许多组织来说,有助于避免这些严重问题的解决方案至关重要。不幸的是,许多重要的解决方案有些难以理解;事件溯源、CQRS、CDC 和 Outbox 也不例外。请将这些解决方案视为学习和理解如何将其应用于您特定用例的机会。

正如您将在本文结尾处发现的那样,我将建议其中四个解决方案中有三个具有很高的价值,而另一个应尽可能避免使用,除非在极少数情况下。本文提供的建议应根据您的具体需求进行评估,因为在某些情况下,这四个解决方案都不适合。

版权所有 © Debezium 及其作者。保留所有权利。有关我们的商标详情,请访问我们的 商标政策商标列表。第三方商标属于其各自所有者,在此提及并不表示任何认可或关联。
×