Debezium 博客

Debezium 社区正处于下一个主要里程碑 **Debezium 3** 的最后冲刺阶段。我们想借此机会提醒社区,我们有关 Debezium 容器镜像的计划……

您可能已经注意到,Docker公司最近宣布缩减免费组织账户的提供。Docker公司希望只为Docker赞助的开源(DSOS)项目提供免费组织账户。Debezium项目不符合他们对开源项目的定义,因为我们有商业化的途径。由于账户将在30天内被终止,我们立即开始着手将Debezium项目从Docker Hub迁移出去。

Apache Kafka 2.8 首次让我们得以一窥这个广受欢迎的事件流平台的无 ZooKeeper 未来:它附带了 KIP-500(“用自管理的元数据仲裁器替换 ZooKeeper”)的预览版,您现在可以运行 Kafka 集群而无需设置和操作 Apache ZooKeeper。这不仅从操作角度简化了 Kafka 的运行,新的元数据仲裁器实现(名为“KRaft”,Kafka Raft 元数据模式)还应提供更好的扩展性,例如在处理大量主题和分区时。

夏季最热的时候慢慢过去,Debezium 社区很高兴地宣布 Debezium 0.10.0.Beta4 的发布。在此版本中,我们很高兴分享一些我们不经常分享的消息:随着 Apache Cassandra 的加入,Debezium 支持的数据库列表又增加了一个!

此外,我们完成了将现有的 Postgres 连接器重基到为 SQL Server 和 Oracle 连接器建立的 Debezium 框架结构的工作。这意味着这些连接器之间共享的代码更多,从而减少了开发团队未来的维护工作;但对您来说,也有一个直接的好处:Postgres 连接器现在公开了您从其他连接器已知的相同指标。

最后,新版本包含一系列错误修复和其他有用的改进。让我们在下面探索一些细节。

夏季正值高峰,但 Debezium 社区并未松懈努力,因此 Debezium 0.10.0.Beta3 已发布。

此版本不仅继续对 Debezium 进行渐进式改进,还带来了闪亮的新功能。

各位使用 PostgreSQL 10 及更高版本作为不同云提供商提供的服务的朋友们,在部署启用流式传输所需的逻辑解码插件时,肯定感受到过其中的复杂性。现在这不再是必需的了。Debezium 现在支持(DBZ-766pgoutput 复制协议,该协议自 PostgreSQL 10 起即可开箱即用。

Debezium 的容器镜像结构得到了巨大的改进,最近,使得扩展其行为变得非常简单。

这是一个小型教程,展示了如何例如添加 Sentry,“一个开源错误跟踪 [软件],帮助开发人员实时监控和修复崩溃”。这里我们将使用它来收集和报告 Kafka Connect 及其连接器的任何异常。请注意,这仅适用于 Debezium 0.9+。

我们需要一些东西来使 Sentry 工作,我们将添加所有这些,然后有一个 Dockerfile 来正确地将它们组合在一起

  • 配置 Log4j

  • sentry.io 的 SSL 证书,因为它默认不在 JVM 受信任链中

  • sentrysentry-log4j

我很高兴地宣布 Debezium 0.10.0.Beta2 的发布!

这进一步稳定了 0.10 版本系列,为不同连接器进行了大量错误修复。23 个问题已在此版本中修复;其中一些与 MySQL 连接器的 DDL 解析器有关,例如关于 RENAME INDEXDBZ-1329)、触发器中的 SET NEWDBZ-1331)以及带有 COLLATE 关键字的函数定义(DBZ-1332)。

对于 Postgres 连接器,我们修复了刷新已处理 LSN 到数据库时可能出现的潜在不一致性(DBZ-1347)。此外,“include.unknown.datatypes”选项现在快照期间按预期工作(DBZ-1335),并且连接器不再会在快照期间遇到物化视图(DBZ-1345)。

又一周,又一个 Debezium 版本 — 我很高兴地宣布 Debezium 0.10.0.Beta1 的发布!

除了升级到 Apache Kafka 2.2.1(DBZ-1316)之外,此版本主要是修复了一些错误,包括 MongoDB 连接器在 Alpha2 版本中引入的回归(DBZ-1317)。

一个非常受欢迎的可用性改进是,连接器现在如果未捕获到至少一个表(根据白名单/黑名单配置),将记录一个警告(DBZ-1242)。这有助于防止通过不正确的过滤器表达式意外排除所有表,在这种情况下,连接器“按预期工作”,但没有事件传播到消息代理。

请参阅发布说明了解此版本中已修复问题的完整列表。请务必在升级早期版本时检查 0.10.0.Alpha1 和 Alpha2 的升级指南。

非常感谢社区成员 Cheng PanChing Tsai 对此版本的贡献!

提早发布,频繁发布 — Alpha1 版本发布不到一周,我们宣布 Debezium 0.10.0.Alpha2 的发布!

这是一个增量版本,完成了 Alpha1 版本中开始的一些任务,并提供了一些错误修复以及我们的 Docker 镜像的质量改进。

snapshot 字段逻辑的更改已按 上一个公告中所述进行交付(DBZ-1295)。所有连接器现在都提供有关记录是快照阶段的最后一个记录的信息,以便下游消费者可以对此做出反应。

我非常高兴地宣布 Debezium 0.10.0.Alpha1 的发布!

Debezium 0.10 的主要主题是进行一些清理(这是您在这个时间该做的事情,对吗?);我们计划删除一些已弃用的功能,并简化 Debezium 连接器生成的 CDC 事件结构中的一些细节。

这意味着,与之前的升级相比,将 Debezium 0.10 升级到早期版本可能需要更多的计划和考虑,具体取决于您对 0.9 及更早版本中已标记为已弃用的功能和选项的使用情况。但不用担心,我们在本文和发布说明中详细描述了所有更改。

我很高兴地宣布 Debezium 0.9.5.Final 的发布!

这是推荐给所有早期版本用户更新的版本;除了错误修复,还提供了一些新功能。该版本总共包含 18 个已解决的问题

我很高兴地宣布 Debezium 0.9.4.Final 的发布!

这是早期 Debezium 0.9.x 版本的直接替代品,主要包含错误修复和一些与指标相关的改进。总体而言,已解决 17 个问题

Debezium 团队很高兴地宣布 Debezium 0.9.3.Final 的发布!

这主要是发布了一个错误修复版本,并且是早期 Debezium 0.9.x 版本的直接替代品,但也有一些重要的重要新功能。总体而言,已解决 17 个问题

由于一些 Docker Hub 配置问题,容器镜像将稍有延迟发布。

Debezium 团队很高兴地宣布 Debezium 0.9.2.Final 的发布!

这主要是发布了一个错误修复版本,并且是早期 Debezium 0.9.x 版本的直接替代品。总体而言,已解决 18 个问题

有几个修复与 Debezium Postgres 连接器 相关。

紧随上周 Debezium 0.9 发布之后,我今天很高兴地宣布 Debezium 0.9.1.Final 的发布!

此版本修复了 0.9 版本发布后报告的一些错误。最重要的是,新Debezium SQL Server 连接器有两处修复,涉及连接器重启后 LSN 的正确处理(DBZ-1128DBZ-1131)。该连接器还为 SQL Server JDBC 驱动程序使用了更合理的 selectMethodfetchSize 选项默认值(DBZ-1065),这有助于显著提高连接器的吞吐量并降低内存消耗。

使用新的基于 Antlr 的 DDL 解析器,MySQL 连接器现在支持 GENERATED 列(DBZ-1123),并且对于 Postgres 连接器,主键列定义更改的处理得到了改进(DBZ-997)。

我很高兴地宣布 Debezium 0.9 Final 的发布!

与上周的 CR1 版本相比,此版本仅增加了少量更改;最值得注意的是,SQL Server 连接器获得了一些额外的指标(落后主库、事务数量等),以及两个与 MySQL(DBZ-1113)和 Postgres(DBZ-1118)分区表处理相关的错误修复。

Debezium 0.9 在初始 Alpha 版本发布六个月后,随附了全新的SQL Server 连接器,对现有连接器进行了大量新功能和改进,更新至最新版本的 Apache Kafka 和支持的数据库,以及广泛的错误修复。

随着 Debezium 0.9 的临近尾声,我非常高兴地宣布 2019 年的第一个 Debezium 版本,0.9.0.CR1

在此版本中,我们主要专注于解决 Debezium SQL Server 连接器中剩余的问题;该连接器具有大大提高的性能,并已进行大量错误修复。

其他更改包括 Debezium 嵌入式引擎的事件处理程序的新接口,允许批量处理变更事件,一项将数字列的精度导出为模式参数的选项,以及 Debezium MySQL、Postgres 和 Oracle 连接器的一系列错误修复。

离年底只有几天了,是时候又一个 Debezium 版本了;因此,我非常高兴地宣布 Debezium 0.9.0.Beta2

此版本支持 MySQL 8 和 Oracle 11g;它包含了 SQL Server 和 Oracle 连接器监控的第一个指标集,对 MongoDB 事件展平 SMT 进行了一些改进,以及大量的错误修复。总的来说,已解决不少于 42 个问题;非常明显,这其中一定有更深层的含义;)

特别感谢以下 Debezium 社区成员为这个版本做出的贡献:Eero KoplimetsGrzegorz KołakowskiHanlin LiuLao MeiRenato MefiTautvydas JanuskeviciusWout ScheepersZheng Wang

接下来,让我们仔细看看 0.9 Beta2 版本带来的一些更改。

我很高兴地宣布 Debezium 0.9.0.Beta1 的发布!哦,还有,祝你们那些庆祝的人——感恩节快乐!

这个新的 Debezium 版本为我们正在开发的 SQL Server 连接器带来了一些很棒的改进。

  • 如果 DB 中启用了 snapshot 隔离级别,则可以执行初始快照(DBZ-941)。

  • 现在支持连接器设置后捕获的表的结构更改(DBZ-812)。

  • 新的连接器选项 decimal.handling.modeDBZ-953)以及将任何 database.* 选项传递给 JDBC 驱动程序(DBZ-964)。

我很高兴地宣布 Debezium 0.9.0.Alpha2 的发布!

虽然 SQL Server 和 Oracle 连接器的开发仍在继续,但我们决定进行另一次 Alpha 版本发布,因为已经积累了大量的修复和新功能——其中许多是由社区成员贡献的,我们希望尽快将它们交给您。

此版本支持 Apache Kafka 2.0,支持 Postgres 的 HSTORE 列类型,允许重命名和过滤 MongoDB 变更数据消息中的字段,并包含多项错误修复和性能改进。总体而言,此版本包含55 项修复(请注意,其中一些已合并到 0.8.x 中,并且也包含在早期的 0.8 版本中)。

非常感谢社区成员 Andrey PustovetovArtiship ArtishipCliff WheadonDeepak BarrIan AxelrodLiu HanlinMaciej BryńskiOri PopowskiPeng LyuPhilip SanetraSagar RaoSyed Muhammad Sufyian 对此版本的贡献。我们向您致敬!

随着气温逐渐转凉,Debezium 团队又重新投入工作,我们很高兴地宣布 Debezium 0.8.3.Final 的发布!

这是当前 Debezium 稳定版本系列 0.8.x 的一个错误修复版本,同时 Debezium 0.9 的开发也在并行进行。此版本共有14 项修复。与早期的 0.8.x 版本一样,我们进一步改进了 MySQL 连接器使用的新基于 Antlr 的 DDL 解析器(参见 DBZ-901DBZ-903DBZ-910)。

Postgres 连接器在数据库有很多自定义类型的启动时间方面得到了巨大改进(DBZ-899)。报告此问题的用户在 pg_catalog.pg_type 中有近 200K 条记录,由于 Postgres 驱动程序本身存在 N + 1 SELECT 问题,这导致连接器启动需要 24 分钟。通过使用自定义查询获取类型元数据,我们将此时间缩短到 5 秒!现在我们正在与 Postgres 驱动程序的维护者合作,以便在 upstream 也修复此问题。

Debezium 团队已从夏季假期归来,我们很高兴地宣布 Debezium 0.8.2 的发布!

这是当前 Debezium 稳定版本系列 0.8.x 的一个错误修复版本,同时 Debezium 0.9 的工作仍在继续。

注意:偶然地,发布工件的版本是0.8.2而不是*0.8.2.Final*。这不符合我们最近确立的始终以限定词(如*Alpha1*、*Beta1*、*CR1*或*Final*)结尾的版本号的约定。0.8 系列的下一个版本将是*0.8.3.Final*,我们将改进我们的发布流程,以确保这种情况不再发生。

0.8.2 版本总共包含10 项修复,其中大部分处理与 Debezium MySQL 连接器进行的 DDL 解析相关的问题。例如,使用新的基于 Antlr 的 DDL 解析器,隐式非空主键列现在将得到正确处理(DBZ-860)。此外,MongoDB 连接器也得到了一个错误修复(DBZ-838):当连接器被请求停止时(例如,在关闭 Kafka Connect 时),初始快照现在将被中断。与错误修复相比,更多的是一个有用的改进,即Postgres 连接器的能力,它可以在发出的 CDC 事件的 source 块中添加表、模式和数据库名称(DBZ-866)。

非常感谢社区成员 Andrey PustovetovCliff WheadonOri Popowski 为此版本做出的贡献!

距离 Debezium 0.8 发布仅两周,我很高兴地宣布 Debezium 0.9.0.Alpha1 发布!

新版本的主要功能是期待已久的 Debezium MS SQL Server 连接器的首个工作版本。新连接器基于 CDC 功能(可在 Enterprise 和 Standard 版本中使用),允许您从微软流行的 RDBMS 中流式传输数据更改。

此外,我们还继续致力于 Debezium Oracle 连接器。最值得注意的是,它现在支持对捕获的表进行初始快照。我们还将 Docker 镜像中的 Apache Kafka 升级到了 1.1.1 (DBZ-829)。

请查看更改日志以获取 0.9.0.Alpha1 的完整更改列表和通用升级说明。

注意: 在撰写本文时(2018-07-26),发布构件(连接器归档)可在 Maven Central 上找到。我们将尽快将 0.9.0.Alpha1 的 Docker 镜像上传到 Docker Hub Docker 镜像已上传并可使用,标签为 0.9.0.Alpha1 和滚动标签 0.9

我非常高兴地宣布 Debezium 0.8.0.Final 发布!

Debezium 0.8 的主要功能是我们 Oracle 连接器的第一个工作版本(基于 XStream API)以及一个全新的 MySQL DDL 语句解析器。此外,还有许多小型新功能(例如,将默认值传播到相应的 Connect schema,可选地将源查询传播到 CDC 消息,以及一个大大改进的 SMT,用于将 MongoDB 的更改同步到 RDBMS)以及大量的错误修复(例如,关于时间和数字列类型,以及 PostgreSQL 的大型事务)。

请参阅之前的公告(Beta 1CR 1)以更深入地了解所有更改。Final 版本在很大程度上与 CR1 相似;除了进一步改进 Oracle 连接器(DBZ-792)之外,Peter Goransson(Peter Goransson) 对 MySQL 连接器做了一个很棒的补充:在进行快照时,它现在将通过 JMX(DBZ-789) 暴露已处理行的信息,这在快照大型表时非常方便。

请查看更改日志以获取 0.8.0.Final 的完整更改列表和通用升级说明。

祝愿所有美国的 Debezium 用户节日快乐!但这并不是唯一的庆祝理由:我同样非常高兴地宣布 Debezium 0.8.0.CR1 发布!

遵循我们新的发布计划,本次 Debezium 0.8 的候选版本主要关注修复上周 Beta 版本报告的错误,并附带少量新实现的功能。

非常感谢所有测试 MySQL 连接器新的基于 Antlr 的 DDL 解析器的人;根据你们报告的问题,我们修复了其中的一些错误。如最近宣布的,对于 0.8 版本,旧解析器将继续是默认实现,但强烈建议您测试新解析器(通过将连接器选项 ddl.parser.mode 设置为 antlr),并报告任何发现。我们计划在 Debezium 0.9 中默认切换到新实现。

我非常激动地宣布 Debezium 0.8.0.Beta1 发布!

此版本带来了许多令人兴奋的新功能以及错误修复,例如:我们新的 Oracle 连接器的第一个版本,MySQL 连接器的一个全新 DDL 解析器,对 MySQL 默认值的支持,以及升级到 Apache Kafka 1.1。

由于更改数量庞大(总共42 个问题),我们决定稍微调整版本方案:今后,我们可能会进行一个或多个 Beta 和 CR(“候选发布”)版本,然后再发布最终版本。这将使我们能够及早获得社区的反馈,同时仍能完成和完善特定功能。最终(稳定)版本将命名为 0.8.0.Final 等。

我很荣幸宣布 Debezium 0.7.5 发布!

这是 0.7 系列的一个错误修复版本,我们在朝着 Debezium 0.8 开发过程中决定发布它。最值得注意的是,它修复了 0.7.3 (DBZ-663) 中引入的一个不幸的错误,该错误导致 Debezium MySQL 连接器的内部数据库历史 topic 在某些特定条件下可能被部分删除。请参阅关于此问题的专用博客文章,了解这是否会影响您以及如何预防此问题。

此外,我们还发布了一些其他修复和改进。感谢 Maciej Brynski逻辑表路由 SMT 的性能得到了显著提升(DBZ-655)。Maciej 贡献的另一个修复是关于 DBZ-646,它允许 MySQL 连接器现在处理 TokuDB 存储引擎的 CREATE TABLE 语句。

我很荣幸宣布 Debezium 0.7.4 发布!

作为 0.7 系列的延续,这个新版本带来了多个错误修复和一些新功能。我们建议所有用户进行升级。从早期版本升级时,请查看您当前版本和 0.7.4 之间的所有版本的发行说明,以了解任何可能需要的升级步骤。

我非常高兴地宣布 Debezium 0.7.3 发布!

这主要是一个错误修复版本,但我们也添加了一些小型新功能。我们建议所有用户升级。从早期版本升级时,请查看您当前版本和 0.7.3 之间的所有版本的发行说明,以了解任何可能需要的升级步骤。

让我们更仔细地看看一些新功能。

我很荣幸地宣布 Debezium 0.7.2 发布!

新功能包括对地理空间类型的支持,MySQL 连接器用于恢复丢失的 DB 历史 topic 的新快照模式,以及一个用于将 MongoDB 更改事件转换为更多下游连接器可以消费的结构的消息转换。当然,我们也修复了大量错误。

Debezium 0.7.2 是先前 0.7.x 版本的直接替换版本。从 0.7.0 之前的版本升级时,请查看所有 0.7.x 版本的发行说明,以了解任何可能需要的升级步骤。

非常感谢我们出色的社区成员为此版本付出的辛勤工作:Andrey PustovetovDenis MikhaylovPeter GoranssonRobert CoupSairam PolavarapuTom Bentley

现在让我们仔细看看一些新功能。

在圣诞节前夕,我们发布了 Debezium 0.7.1!这是一个错误修复版本,修复了社区在使用 Debezium 0.7 的初步阶段发现的一些恼人问题。所有问题都与新提供的 wal2json 支持或降低内部竞态条件风险的改进有关。

Robert Coup 发现了在使用旧版本 Protobuf 解码器时发生的性能回归

Suraj Savita(及其他人)发现我们的代码在正确检测是否使用 Amazon RDS wal2json 插件时存在问题。我们被 JDBC 驱动程序内部机制所迷惑,并包含了一个不同的插件解码器名称 wal2json_rds,它绕过了检测例程,默认情况下期望在 Amazon RDS 实例上运行。此模式仅应与 RDS 实例一起使用。

我们还收集了首次尝试在 Amazon RDS 上运行的反馈,并在文档中添加了一个简短章节来讨论这个问题。

圣诞节还没到,但我们已经为你准备了一份礼物:Debezium 0.7.0 现已发布,包含丰富的新功能和许多错误修复!非常感谢所有为本次发布做出贡献的社区成员。看到不仅有越来越多的问题和功能请求被报告,还有越来越多的 pull request 提交,这让我们倍受鼓舞。

请注意,本次发布对某些数据类型的默认映射进行了一些小的更改。我们尽量避免此类更改,但在某些情况下这是必需的,例如,如果之前的映射可能导致潜在的值丢失。请参阅下文了解详细信息,并请务必查看完整的更改日志,其中详细描述了这些更改。

现在让我们仔细看看一些新功能。

我们正在加速!在 0.6.1 发布三周后,Debezium 团队为您带来了Debezium 0.6.2

本次发布主要围绕错误修复,但也包含一些新功能。让我们仔细看看一些更改。

在 0.6.0 发布不到一个月的时间里,我很高兴地宣布Debezium 0.6.1 发布!

此版本包含多个错误修复、依赖项升级以及一个控制如何传输 BIGINT UNSIGNED 列的新选项。我们还扩展了教程附带的 Docker 镜像和 Docker Compose 文件集,现在您可以针对我们支持的所有数据库运行它。

让我们仔细看看一些更改。

有什么比获得 Java 9 更好?同时获得 Java 9 和新版本的 Debezium!因此,我非常高兴地宣布今天发布Debezium 0.6

我非常高兴地宣布Debezium 0.5.2发布!

与前一个版本一样,0.5.2 版本修复了MySQLPostgresMongoDB 连接器中的多个错误。但也有一些新功能和选项。

  • decimal.handling.mode 选项(在 MySQL 连接器中已知)现在也支持 PostgreSQL(DBZ-337)。它允许您控制 NUMERICDECIMAL 列如何在更改事件中表示(使用 Kafka 的 Decimal 类型或作为 double)。

  • MongoDB 连接器现在支持 database.whitelistdatabase.blacklist 选项(DBZ-302)。

  • PostgreSQL 连接器可以处理数组类型列以及表、schema 等的带引号标识符(DBZ-297DBZ-298)。

  • Debezium Docker 镜像可在 Red Hat 的 OpenShift 云环境中运行(DBZ-267)。

我很荣幸地宣布Debezium 0.5.1发布!

此版本修复了MySQLPostgresMongoDB 连接器中的多个错误。还支持一些新的数据类型:MySQL 上的 POINTDBZ-222)和 Postgres 上的 TSTZRANGEDBZ-280)。此版本是 0.5.0 的直接替换版本,建议所有用户升级。

请注意,在 — 相当不可能 — 您为 MySQL 的所有系统表启用了 Debezium 的情况下,配置的表过滤器现在也将应用于这些系统表(DBZ-242)。如果您确实想捕获所有系统表但只选择了非系统表,这可能需要调整您的过滤器。

我们很高兴地宣布Debezium 0.5.0现已可与Kafka Connect 0.10.2.0一起使用。此版本还包括对MySQL 连接器的一些修复。有关这些更改的详细信息,请参阅发行说明,并务必查看Kafka 文档以了解与您正在使用的 Kafka broker 版本的兼容性。

Kafka Connect 0.10.2.0 带来了一个名为单消息转换(Single Message Transforms)的重要新功能,现在您可以将其与 Debezium 连接器一起使用。SMT 允许您在消息写入 Kafka 之前修改由 Debezium 连接器和任何其他 Kafka Connect 源连接器生成的消息。SMT 也可以与 Kafka Connect sink 连接器一起使用,在 sink 连接器处理消息之前修改它们。您可以使用 SMT 来过滤掉或屏蔽特定字段,添加新字段,修改现有字段,更改消息写入的主题和/或主题分区,甚至更多。您甚至可以将多个 SMT 链接在一起。

Kafka Connect 附带了许多内置 SMT,您可以直接配置和使用它们,但您也可以创建自己的 SMT 实现来执行更复杂和有趣的操作。例如,尽管 Debezium 连接器通常将每个表(或集合)中的所有更改映射到单独的主题,但您可以编写一个自定义 SMT,它使用表和主题之间完全不同的映射,甚至向消息键和/或值添加字段。使用新的 SMT 也非常简单 - 只需将其放在 Kafka Connect 类路径中,并更新连接器配置以使用它。

我们还添加了标记为 0.5latestDebezium Docker 镜像,我们在教程中使用它们。

感谢 Sanjay 和社区中的所有人为此版本、问题、讨论、贡献和提问提供的帮助!

我们很高兴地宣布,**Debezium 0.4.1** 现在可以与 Kafka Connect 0.10.1.1 一起使用。此版本包含对 MongoDB 连接器MySQL 连接器 的几项修复,包括对 Amazon RDSAmazon Aurora (MySQL 兼容性) 的改进支持。有关这些更改的详细信息,请参阅 发行说明

我们还更新了标记为 0.4latestDebezium Docker 镜像,我们在 教程 中使用了这些镜像。

感谢 Jan、Horia、David、Josh、Johan、Sanjay、Saulius 以及社区中的每个人,感谢他们在此次发布、问题、讨论、贡献和提问方面的帮助!

随着最近的 Debezium 发布,我们很高兴地宣布,除了现有的 MySQL 和 MongoDB 连接器之外,还添加了一个新的PostgreSQL 连接器

我们很高兴地宣布,Debezium 0.4.0 现在可与 Kafka Connect 0.10.1.1 一起使用。此版本引入了新的 PostgreSQL 连接器,并对 MongoDB 连接器MySQL 连接器 进行了十几次修复,包括对 Amazon RDSAmazon Aurora(MySQL 兼容) 的初步支持。有关这些更改的详细信息,请参阅 发行说明

我们还创建了标记为 0.4latestDebezium Docker 镜像,我们在 教程 中使用了它们。

感谢 Horia、Chris、Akshath、Ramesh、Matthias、Anton、Sagi、barton 等人在此次发布、问题、讨论、贡献和问题中的帮助!

我们很高兴地宣布,**Debezium 0.3.6** 现在可以与 Kafka Connect 0.10.0.1 一起使用。此版本包含对 MySQL 连接器和 MongoDB 连接器的十几项修复。有关这些更改的详细信息,请参阅 发行说明

我们还更新了 Debezium Docker 镜像,标签为 0.3latest,这些镜像我们在 教程 中使用。

感谢 Farid、RenZhu、Dongjun、Anton、Chris、Dennis、Sharaf、Rodrigo、Tim 以及其他人在此次发布、问题、讨论、贡献和提问方面的帮助!

我们很高兴地宣布,**Debezium 0.3.5** 现在可以与 Kafka Connect 0.10.0.1 一起使用。此版本包含对 MySQL 连接器的几项修复,并增加了与 多主 MySQL 服务器 作为源一起使用的能力。有关这些更改的详细信息,请参阅 发行说明。我们还更新了标记为 0.3latestDebezium Docker 镜像,我们在 教程 中使用了这些镜像。

其中一项修复非常重要,因此**我们强烈建议所有用户从所有早期版本升级到此版本。**在以前的版本中,MySQL 连接器可能会在未完成事务中的所有更新的情况下停止,并且当连接器重新启动时,它会从下一个事务开始,因此可能无法捕获前一个事务中的某些更改事件。此版本修复了此问题,因此在重新启动时,即使在事务中间,它也将始终从中断的地方继续。请注意,此修复仅在连接器升级并重新启动后才生效。有关更多详细信息,请参阅 此问题

感谢 Akshath、Anton、Chris 以及其他人在此次发布、问题、讨论、贡献和提问方面的帮助!

我们很高兴地宣布,**Debezium 0.3.4** 现在可以与 Kafka Connect 0.10.0.1 一起使用。此版本为 MySQL 连接器带来了几项新功能:支持 MySQL 的 JSON 数据类型,一种名为 schema_only 的新快照模式,以及 JMX 指标。此外,Debezium 的 Zookeeper、Kafka 和 Kafka Connect 容器镜像都已更新,以便可以选择在这些服务中 公开 JMX 指标。此外,对更改事件的 ts_sec 字段进行了向后不兼容的修复。有关详细信息,请参阅 发行说明

我们还更新了 Debezium Docker 镜像,标签为 0.3latest,这些镜像我们在 教程 中使用。

感谢 Akshath、Chris、Vitalii、Dennis、Prannoy 以及其他人在此次发布、问题、讨论、贡献和提问方面的帮助!

我们很高兴地宣布,**Debezium 0.3.3** 现在可以与 Kafka Connect 0.10.0.1 一起使用。此版本包含对 MySQL 连接器 的几项错误修复和小型改进,包括对 BIT(n) 值、ENUMSET 值以及 GTID 集合的更好处理。此版本还改进了 MySQL 连接器输出的日志消息,以便在消耗源数据库的更改时更好地反映正在进行的活动。有关详细信息,请参阅 发行说明

我们还更新了 Debezium Docker 镜像(标记为 0.3latest),我们在 教程中会用到它们。我们还更新了教程,以便在 Linux、Windows 和 OS X 上使用 最新的 Docker 安装

感谢 Akshath、Chris、Randy、Prannoy、Umang、Horia 以及其他人在此次发布、问题、讨论、贡献和提问方面的帮助!

我们很高兴地宣布 Debezium 0.3.2 现已可与 Kafka Connect 0.10.0.1 一起使用。此版本包含对 MySQL 连接器MongoDB 连接器的一些错误修复和小的改进。MySQL 连接器能更好地处理 BIT(n) 值以及 零值日期和时间戳值。此版本还改进了 MySQL 和 MongoDB 连接器输出的日志消息,以更好地表示从源数据库消费更改时的正在进行的活动。有关具体信息,请参阅 发行说明

我们还更新了 Debezium Docker 镜像(标记为 0.3latest),我们在 教程中会用到它们。我们还更新了教程,以便在 Linux、Windows 和 OS X 上使用 最新的 Docker 安装

感谢 Akshath、Colum、Emmanuel、Konstantin、Randy、RenZhu、Umang 以及其他人对此次发布、问题、讨论、贡献和提问提供的帮助!

我们很高兴地宣布 Debezium 0.3.1 现已可与 Kafka Connect 0.10.0.1 一起使用。此版本包含一个更新的 MySQL 连接器,包含一些错误修复和两个重要但向后兼容的更改。首先,MySQL 连接器现在支持使用安全的连接到 MySQL,这增加了现有连接安全到 Kafka 的能力。其次,MySQL 连接器能够使用正确的字符集捕获 MySQL 字符串值,以便数据库中存储的任何值都能在事件中正确捕获。有关这些更改的详细信息以及升级建议,请参阅我们的 发布说明

我们还更新了 Debezium Docker 镜像,标签为 0.3latest,这些镜像我们在 教程 中使用。

感谢 Chris、Akshath、barten 和其他人协助发布、处理问题、讨论、贡献和解答疑问!

经过几周的延迟,Debezium 0.3.0 现已可用,可与 Kafka Connect 0.10.0.1 一起使用。此版本包含一个更新的 MySQL 连接器,其中包含许多错误修复,以及一个新的 MongoDB 连接器,它可以捕获对 MongoDB 副本集或 MongoDB 分片群集所做的更改。有关如何配置这些连接器及其工作原理的详细信息,请参阅 文档

我们还更新了 Debezium Docker 镜像(标签为 0.3latest),这些镜像我们在 教程 中使用。

感谢 Andrew、Bhupinder、Chris、David、Horia、Konstantin、Tony 和其他人协助发布、处理问题、讨论、贡献和解答疑问!

我很高兴地宣布 Debezium 0.2.4 现已可用,可与 Kafka Connect 0.9.0.1 一起使用。此版本增加了 MySQL 快照期间更详细的日志记录,支持对非常大的 MySQL 数据库进行快照,并修复了在正常关闭期间可能发生的异常。有关这些更改的详细信息以及升级建议,请参阅我们的 发布说明

我们还更新了 Debezium Docker 镜像(标签为 0.2latest),用于我们的 教程

感谢 David 和 wangshao 协助发布、处理问题、讨论、贡献和解答疑问!敬请关注我们的下一个版本 0.3,它将包含一个新的 MongoDB 连接器,并支持 Kafka Connect 0.10.0.1。

我很高兴地宣布 Debezium 0.2.3 现已可用,可与 Kafka Connect 0.9.0.1 一起使用。此版本修复了 MySQL 连接器在使用 TINYINTSMALLINT 列或 TIMEDATETIMESTAMP 列时的行为。有关这些更改的详细信息以及升级建议,请参阅我们的 发布说明

我们还更新了 Debezium Docker 镜像(标签为 0.2latest),用于我们的 教程

感谢 Chris、Christian、Laogang 和 Tony 协助发布、处理问题、讨论、贡献和解答疑问!敬请关注我们的下一个版本 0.3,它将包含一个新的 MongoDB 连接器,并将支持 Kafka Connect 0.10.0.0。

我很高兴地宣布 Debezium 0.2.2 现已发布。此版本修复了 MySQL 连接器中的几个错误,这些错误可能导致源元数据不正确的变更事件,并消除了因连接器崩溃时机不当而导致连接器仅处理多行 MySQL 事件中部分行的可能性。有关这些更改的详细信息以及升级建议,请参阅我们的 发布说明

此外,感谢社区成员 报告 Debezium 0.2.x 只能与 Kafka Connect 0.9.0.1 一起使用。由于 消费者 API 的向后不兼容更改,Debezium 0.2.x 不能与 Kafka Connect 0.10.0.0 一起使用。我们下一版的 Debezium 将支持 Kafka 0.10.x。

我们还更新了 Debezium Docker 镜像(标签为 0.2latest),用于我们的 教程

我很高兴地宣布 **Debezium 0.2.1 现已发布**。 MySQL 连接器得到了显著改进,现在能够使用 GTIDs 监控和生成 高可用 MySQL 集群 的更改事件,在首次启动时执行一致性快照,并且拥有一个完全重新设计的 事件消息结构,为每个事件提供更多信息。我们的 更改日志 包含有关错误、增强功能、新功能和向后兼容性通知的所有详细信息。我们还更新了 教程

更新(2019年10月11日):在Kubernetes上运行Debezium(以及Apache Kafka和Kafka Connect)的一个更简单的方法是使用K8s Operator,例如Strimzi。您可以在此处找到在OpenShift上设置Debezium的说明,对于纯Kubernetes也适用类似的步骤。

我们的Debezium教程将逐步引导您完成Debezium的使用,通过安装、启动和连接运行在单个主机上的所有Docker容器。当然,您可以使用Docker Compose或自己的脚本来简化操作,但这只是自动化在单台机器上运行所有容器。您真正想要的是在多台机器的集群上运行容器。在这篇博文中,我们将使用Red Hat和Google提供的容器集群管理器Kubernetes来运行Debezium。

Kubernetes是一个容器(Docker/Rocket/Hyper.sh)集群管理工具。像许多其他流行的集群管理和计算资源调度平台一样,Kubernetes的根源在于Google,Google在运行大规模容器方面经验丰富。他们每周启动、停止和集群20亿个容器,并且他们贡献了许多使容器成为可能的核心Linux底层技术。他们一篇著名的论文讨论了一个名为Borg的内部集群管理器。有了Kubernetes,Google对大家用Java实现他们的论文感到厌倦,于是决定自己实现这篇论文:)

Kubernetes是用Go语言编写的,并且迅速成为大规模调度、管理和集群容器的实际API。这篇博文并非旨在成为Kubernetes的入门指南,因此我们建议您查阅入门指南文档以了解更多关于Kubernetes的信息。

Debezium 是一个分布式平台,可将您现有的数据库转化为事件流,从而使应用程序能够几乎即时地查看和响应数据库中的每次提交的行级更改。Debezium 构建在 Kafka 之上,并提供 Kafka Connect 兼容的连接器,用于监控特定的数据库管理系统。Debezium 将数据更改历史记录在 Kafka 日志中,因此您的应用程序可以随时停止和重新启动,并且可以轻松地处理它在未运行时错过的所有事件,确保所有事件都得到正确和完整的处理。Debezium 在 Apache License, Version 2.0 下是 开源的。

现在是好消息——**Debezium 0.1 现已发布**,其中包括几项重要功能

  • 一个用于监控 MySQL 数据库的 MySQL 连接器。它是一个 Kafka Connect 源连接器,因此只需将其安装到 Kafka Connect 服务中(见下文),然后使用该服务的 REST API 来配置和管理到每个 DBMS 服务器的连接器。该连接器读取 MySQL binlog 并为被监控数据库中的每次提交的行级修改生成数据更改事件。MySQL 连接器根据行更改时表的结构生成事件,并自动处理表结构的更改。

  • 一个小型库,应用程序可以通过该库嵌入任何 Kafka Connect 连接器并直接从源系统读取数据更改事件。这提供了一个更轻量级的系统(因为不需要 Zookeeper、Kafka 和 Kafka Connect 服务),但因此容错性和可靠性较差,因为应用程序必须维护 Kafka 的分布式和复制日志中通常存储的状态。因此,应用程序完全负责管理所有状态。

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