Debezium 博客

大家好,我叫 Giovanni,我最近加入了 Red Hat 和 Debezium 团队。我职业生涯的大部分时间都在微服务架构的公司度过,随着时间的推移,我经历过不同技术浪潮和迁移挑战。在这个过程中,我有机会参与了 lastminute.com 的航班价格引擎工作,涵盖了元搜索和直接渠道,实现了动态定价算法,以确保在高流量条件下保持准确性和可扩展性。此外,...

你好 Debezium 社区!我是 Alvar Viana,就在一个月前,我加入了 Red Hat 和 Debezium 团队。我是一名软件工程师,拥有近 10 年的专业经验。在我的职业生涯中,我一直为产品公司/项目工作。最初是一名后端/嵌入式开发人员,为一家被 ABB 收购的公司工作。几年后,我改变了我的生活、城市、工作和角色。从那时起,我在 adidas 和 Sysdig 作为...

欢迎来到最新一期的“Debezium 社区故事”,这是一系列对 Debezium 和变更数据捕获社区成员(如用户、贡献者或集成商)的采访。今天,我很高兴能与 Lars M Johansson 对话。

Debezium UI 团队继续添加对更多功能的支持,使用户能够更轻松地配置连接器。在本文中,我们将描述并演示如何提供 UI 默认未公开的附加配置属性。请继续阅读以获取更多信息!

大家好,我叫 Mario Fiore Vitale,我最近加入了 Red Hat 和 Debezium 团队。

我是一个充满好奇心的人,奉行持续学习的理念,喜欢不断提升自己的技能。我非常注重代码质量和可读性。

我拥有大约 9 年以上的经验,曾在咨询、初创企业和企业产品公司工作,涵盖不同行业。在我之前的工作经历中,我有机会参与了架构重新设计项目,将单体应用拆分成微服务应用。在此过程中,我积累了使用 Kafka、Elasticsearch、Redis、Kubernetes、VictoriaMetrics、Spring Framework 以及一些 Cassandra 等不同技术的经验。

我为什么在这里?

去年 11 月,我们 宣布 我们正在为团队寻找增援。今天我有两个消息要告诉大家:一个好消息和一个更好的消息。

正如大家可能都很清楚的,Gunnar Morling 已辞去 Debezium 项目负责人的职务,现在正寻求新的令人兴奋的机遇。这很可惜,但每一件坏事都有好的一面!

那会是什么呢?我们(Debezium 团队和 Red Hat)正在招聘!您是社区的贡献者吗?您提交过拉取请求吗?您是 Debezium 的忠实用户并渴望做得更多,还是您是一位经验丰富的 Java 开发者,正在寻找一份在令人兴奋且包容的开源环境中的工作?

大约在 2017 年初,我收到了 Debezium 创始人 Randall Hauch 的会议邀请。他即将开始职业生涯的新篇章,并正在寻找接任 Debezium 项目负责人的人。于是我们通了电话,我立刻被变更数据捕获的概念、其众多的潜在用例和应用,以及将其作为开源提供给社区的想法所吸引。经过短暂考虑后,我决定抓住这个机会,毫无疑问,这是我职业生涯中做出的最好的决定之一。

在为您的项目开发测试时,迟早您会遇到某些测试随机失败的情况。这些测试也称为不稳定测试,非常令人头疼,因为您永远不知道失败是随机的还是代码中存在回归。最糟糕的情况是您会忽略这些测试,因为您知道它们不稳定。大多数测试框架甚至有专门的注解或其他方式来表示测试不稳定,如果失败,应该忽略失败。这种测试的价值非常值得怀疑。对这种测试最好的处理方式当然是修复它,使其不再随机失败。这说起来容易,做起来难。最困难的部分通常是让测试在您的开发环境中失败,以便您可以对其进行调试,了解它为什么失败以及失败的根本原因。在这篇博文中,我将尝试展示一些可以帮助您在本地计算机上模拟随机测试失败的技术。

正如您可能注意到的,我们已经开始进行 Debezium 2.0 的开发。2.0 版本计划中的 更改之一将基线切换到 Java 11。虽然一些 Java 构建提供商仍然支持 Java 8,但其他 Java 8 发行版已经达到了其生命周期/支持的终点。用户反正都在转向 Java 11,正如 New Relic 的 Java 生态系统状况报告 等调查所示。但这不仅仅是支持问题:Java 11 带来各种性能改进,有用的工具(如 JDK Flight Recorder,它在 Java 11 中已开源),等等。所以我们觉得是时候开始考虑使用更近期的 JDK 作为 Debezium 的基线了,而新的主版本是一个自然的切换里程碑。

大家好,我叫 Vojtěch Juránek,我最近加入了 Debezium 团队。

我的大部分 IT 职业生涯都在 Red Hat 度过。我拥有粒子物理学的背景,但在加入 Red Hat 之前,我已经做了很多编程工作,当时我正在研究 高能粒子碰撞模拟 及其 数据分析。科学本身就是开源的,我所使用的所有软件也都是开源的。我的开源热情就是从这里开始的。

在 ScyllaDB,我们开发高性能的 NoSQL 数据库 Scylla,它与 Apache Cassandra、Amazon DynamoDB 和 Redis API 兼容。今年早些时候,我们在 Scylla 4.3 中引入了对 变更数据捕获 (CDC) 的支持。这项新功能似乎与 Apache Kafka 生态系统集成非常契合,因此我们使用 Debezium 框架开发了 Scylla CDC 源连接器。在这篇博文中,我们将介绍 Scylla CDC 的基本结构,我们选择 Debezium 框架的原因以及我们做出的设计决策。

欢迎来到最新一期的“Debezium 社区故事”,这是一系列对 Debezium 和变更数据捕获社区成员(如用户、贡献者或集成商)的采访。今天,我很高兴能与 Sergei Morozov 对话。

欢迎阅读最新一期的 Debezium 社区新闻通讯,在此我们将分享与 CDC 相关的所有信息,包括博客文章、小组讨论以及对我们的用户社区有用的 StackOverflow 问题。

距离我们上一期新闻通讯已经过去很久了。但我们回来了!如果您错过了上一期,可以在 这里 查看。

大家好,我叫 Anisha Mohanty,我最近加入了 Red Hat 和 Debezium 团队。

我于 2020 年 4 月完成学业后开始在 Red Hat 工作。我在大学早期就接触了开源,但我并不知道组织是如何运作的,我想了解开源伦理和价值观的精髓。这正是我加入 Red Hat 后感到着迷并想去学习的。

我的工作最初是在数据虚拟化团队下的 Teiid,然后是在 GRAPHQLCRUD 项目下,该项目是 GraphQL 之上通用查询接口的标准。该项目已经顺利启动并处于良好状态。我们已经成功添加了 CRUD 功能、分页和过滤规范。

说到 Debezium,我第一次听说它是因为一些 DV 成员开始向这里贡献代码,当时对我来说这完全是新事物。我开始进一步探索,不久后就与 Gunnar 和 Jiri 进行了第一次互动。这里有一个温暖的欢迎和很棒的团队,我非常期待与 Debezium 社区合作。

在过去的五年里,Debezium 已成为各种数据库变更数据捕获(CDC)的领先开源解决方案。来自各行各业的用户使用 Debezium 来实现数据从操作数据库复制到数据仓库、更新缓存和搜索索引、通过 Kafka Streams 或 Apache Flink 驱动流式查询、同步微服务之间的数据等多种用例。

在与 Debezium 用户交流时,我们通常会收到关于 Debezium 提供的应用范围及其灵活性的良好反馈:例如,每个连接器都可以根据您的具体需求进行各种配置和微调。大量的指标提供了对运行中的 Debezium 连接器状态的深入了解,从而可以安全地在拥有数千个连接器的巨大安装环境中运行 CDC 管道。

然而,这一切都伴随着一定的学习曲线:新接触 Debezium 的用户需要了解不同的选项和设置,并学习在生产环境中运行 Debezium 的最佳实践。因此,我们一直在探索如何进一步改善 Debezium 的用户体验,让人们能够更轻松地设置和操作其连接器。

欢迎阅读第一期“Debezium 社区故事”,这是一个新的系列,采访 Debezium 和变更数据捕获社区的成员,如用户、贡献者或集成商。我们计划以宽松的节奏发布更多本系列的文章,如果您想参与其中,请告诉我们。在今天的访谈中,我很高兴能与 Renato Mefi 对话,他是一位长期的 Debezium 用户和贡献者。

大家好,我叫 René Kerner,我最近加入了 Red Hat 和 Debezium 团队。

我自 2011 年起在 trivago 工作,2016 年我们开始使用 Debezium 0.4/0.5 版本,将点击流数据捕获到 Kafka 并将其聚合到中心集群。我们在一年内大大加强了 Debezium 的使用,并在 2017 年也将其用于 trivago 的主要数据。

2014 年,我首次对 Composer(PHP 的依赖管理工具)进行了开源贡献,并在 Developer Conference(现称为 code.talks)上就此发表了第一次演讲。然后,在 2017 年,我首次为 Debezium 贡献了代码,完成了 MySQL 快照过程的工作并修复了一个 MySQL TIME 数据类型的问题。

2018 年,我离开了 trivago,开始在 Codecentric 担任软件架构和开发(主要侧重 JVM)以及 Apache Kafka 的顾问,为德国“财富 500 强”公司(保险、工业领域、媒体)进行了大量培训和研讨会。那时我进行了大量的网络交流,在那里我了解到 Kafka 周围的社区有多么棒。我一直很遗憾没有更多时间专注于开源项目。

欢迎阅读最新一期的 Debezium 社区新闻通讯,在此我们将分享与 CDC 相关的所有信息,包括博客文章、小组讨论以及对我们的用户社区有用的 StackOverflow 问题。

如果您错过了上一期,可以在 这里 查看。

欢迎阅读 Debezium 社区新闻通讯,在此我们将分享与 CDC 相关的所有信息,包括博客文章、小组讨论以及对我们的用户社区有用的 StackOverflow 问题。

今年夏天对团队来说是令人兴奋的。我们不仅在努力开发 Debezium 0.10,还对 debezium.io 进行了一些最近的更改。

欢迎阅读第一期 Debezium 社区新闻通讯,在此我们将分享与我们的用户社区相关的博客文章、小组讨论以及 StackOverflow 问题。

大家好,我叫 Chris Cranford,我最近加入了 Debezium 团队。

我在 Red Hat 的职业生涯始于三年多前;然而,我从事这一行已经将近二十年了。在我的整个职业生涯中,我一直倡导和支持开源软件。我早期的许多软件项目都基于开源软件,其中一些至今仍在大量使用,例如 Hibernate ORM

去年我第一次了解到 Debezium 项目时,我立刻感到非常兴奋。

我看到了这个项目将对许多人有多么有用,我对它专业的设计方式印象深刻:一个基于 Apache Kafka 的强大的变更数据捕获架构,在发生故障时也着重于健壮性和正确性,总体目标是创建一个多样化的 CDC 连接器生态系统。所有这一切都基于开源原则,从一开始就提供了广泛的文档,一个友好且受欢迎的网站,以及出色的入门体验。

所以您可以想象,我对有机会接任 Debezium 的项目负责人一职感到非常兴奋。Debezium 和 CDC 与我之前参与的一些数据中心项目有着紧密的联系,也与我一直在研究的 CQRS、事件溯源和反规范化等理念相关。作为 Hibernate 团队 在 Red Hat 的核心成员,我为 Hibernate Search(处理通过 JPA/Hibernate 进行全文索引更新)实现了最初的 Elasticsearch 支持。我还为 Hibernate OGM 做出了贡献——这是一个将 JPA 与 NoSQL 世界连接起来的项目。OGM 的计划之一是创建一个声明式的反规范化引擎,用于创建针对特定用例优化的读取模型。看到它如何与 Debezium 提供的功能协同工作将非常有趣。

在我于 2016 年初启动 Debezium 项目之前不久,Martin Kleppmann 就举办了多次关于 “将数据库内部颠倒” 的演讲,以及他的 Bottled Water 项目如何展示变更数据捕获在利用 Kafka 进行流处理方面的重要性。然后,Kafka Connect 被宣布,那时我意识到 Kafka Connect 是构建实用且可重用的变更数据捕获的基础。随着这些技术和方法对 Red Hat 变得越来越重要,我获得了启动一个围绕为各种数据库管理系统构建出色 CDC 连接器的新开源项目和社区的机会。

在过去的几年里,我们为 MySQL、然后是 MongoDB,最近是 PostgreSQL 创建了 Kafka Connect 连接器。每个连接器最初都有限制并存在一些问题,但随着时间的推移,越来越多的人尝试使用这些连接器,提出问题,回答问题,在 Twitter 上提及 Debezium,在自己的环境中测试连接器,报告问题,修复 bug,讨论限制和潜在的新功能,实现增强功能和新功能,改进文档,并撰写博客文章。简而言之,具有相似需求和兴趣的人们一起合作,形成了一个社区。额外的连接器,例如用于 OracleSQL Server 的连接器正在开发中,但需要一些帮助才能更快地推进。

看到我们取得的成就以及 Debezium 社区不断发展壮大,这真是令人兴奋。或许现在是把接力棒交给别人的好时机。事实上,在 Red Hat 工作了近 10 年的美好时光后,我将做出一个更大的改变,从今天起,我将加入 Confluent 的工程团队,我预计在那里将在更广泛的 Kafka 社区中发挥更积极的作用,并更直接地与 Kafka Connect 和 Kafka Streams 打交道。我**确实**计划继续参与 Debezium 社区,但我将不再领导该项目。这个角色将由 Gunnar Morling 接任,他最近加入了 Debezium 社区,但拥有丰富的开源经验,在 Hibernate 社区Bean Validation 规范方面经验丰富。Gunnar 是个很棒的人,也是一位杰出的开发者,他将成为 Debezium 社区的优秀领导者。

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