开云体育官方注册网址Debezium博客

卡夫卡流是一个基于Apache Kafka开发流处理应用程序的库。引用它的文档,“Kafka Streams应用程序通过拓扑实时地记录流,连续地、并发地、逐条记录地处理数据”。Kafka Streams DSL提供了一系列流处理操作,如映射、过滤、连接和聚合。

Kafka流中的非键连接

开云体育官方注册网址Debezium的CDC源连接器可以很容易地捕获数据库中的数据变化,并将它们近实时地推向Elasticsearch等接收器系统。开云体育电动老虎机默认情况下,这将导致源数据库中的表、对应的Kafka主题和接收器端的数据表示(例如Elasticsearch中的搜索索引)之间的1:1关系。开云体育电动老虎机

在1:n关系的情况下,比如在一个客户表和一个地址表之间,消费者通常对数据的视图感兴趣,它是一个嵌套的数据结构,例如,一个Elasticsearch文档表示一个客户和他们所有的地址。

这就是kip - 213(“Kafka改进方案”)和它的外键连接能力进来了:它在Apache卡夫卡2.4“缩小流中的KTables和关系数据库中的表之间的语义差距”。开云体育电动老虎机在KIP-213之前,为了连接来自两个Debezium更改事件主题的消息,通常必须手动重新输入至少一个开云体育官方注册网址主题的密钥,以确保在连接的两端使用相同的密钥。

多亏了KIP-213,这不再需要了,因为它允许在从Kafka消息值中提取的字段中连接两个Kafka主题,以完全透明的方式自动处理所需的重键。比较,以前的方法,这大大减少了从Debezium的CDC事件创建聚合事件的工作量。开云体育官方注册网址

典型的Debezium用例之一是使用变开云体育官方注册网址更数据捕获来将遗留系统与组织中的其他系统集成。实现这一目标有多种方法

  • 使用Debezium将数据写入Kafka,并结合Ka开云体育官方注册网址fka Streams管道和Kafka Connect连接器将更改交付给其他系统

  • 使用开云体育官方注册网址Debezium嵌入式引擎在Java独立应用程序中,使用纯Java编写集成代码;它通常用于将更改事件发送到其他消息传递基础设施,如Amazon Kinesis,谷歌Pub/Sub等。

  • 使用现有的集成框架或服务总线来表达管道逻辑

本文主要讨论第三种选择——专用集成框架。

尽早发布,经常发布!在本周早些时候发布了1.1 Beta1和1.0.1最终版之后,今天我很高兴与大家分享Debezium发布的消息开云体育官方注册网址1.1.0.Beta2

Beta2中增加的主要功能是支持使用测试容器对变更数据捕获(CDC)设置进行集成测试。此外,Quarkus扩展用于实现发件箱模式,以及SMT用于提取更改状态事件已经重新工作,现在提供了更多的配置灵活性。

本文深入讨论了事件来源、命令查询责任隔离(CQRS)、变更数据捕获(CDC)和发件箱模式等领域。这些解决方案的价值将得到迫切需要的澄清。此外,将详细解释两种不同的设计的优点/缺点。

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

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

正如您将在本文最后发现的那样,我将提出这四种解决方案中的三种具有很高的价值,而另一种解决方案不应该使用,除非在最罕见的情况下。本文给出的建议应该根据您的具体需求进行评估,因为在某些情况下,这四种解决方案都不太合适。

发件箱是在我电子邮件客户端的那个文件夹里吗?不,不完全是,但有一些相似之处!

术语发件箱描述了允许独立组件或服务执行的模式读自己写的语义,同时为那些跨组件或服务边界的写操作提供可靠的、最终一致的视图。

你可以在我们的博客文章中阅读更多关于发件箱模式以及它如何应用于微服务的内容,使用发件箱模式进行可靠的微服务数据交换

那么到底什么是发件箱事件路由器?

在De开云体育官方注册网址bezium 0.9.3版本中。最后,我们介绍了一个现成的工具单个消息转换(SMT),它构建在发件箱模式上,使用Debezium和Kafka传播数据更改事件。开云体育官方注册网址请参阅文档有关如何使用此转换的详细信息。

上周的公告Quarkus在Java社区中引起了极大的兴趣:它由最好的Java库和标准精心制作,允许基于GraalVM和OpenJDK HotSpot构建kubernetes原生应用程序。在这篇博文中,我们将演示一个基于夸克的微服务如何通过Apache Kafka使用Debezium的数据更改事件。开云体育官方注册网址出于这个目的,我们将从最近的文章中看到如何转换运输微服务发件箱模式变成基于quarkuss的服务。

Baidu
map