我们很高兴地宣布 **Debezium 图形用户界面** 的首个正式版本发布!
正如 几个月前 公告的那样,我们的团队一直在开发 Debezium UI 的概念验证。该概念验证的目标是探索图形 UI 如何能为 Debezium 用户提供更便捷的入门和操作体验。
Debezium 非常灵活 - 每个连接器都可以通过多种方式进行配置和微调。它提供了指标,让用户了解正在运行的 Debezium 连接器的状态,使用户能够安全地在拥有数千个连接器的庞大安装中运行 CDC 管道。然而,这种灵活性也带来了学习曲线,用户需要理解所有不同的设置和选项。
为此,我们推出了一个 UI,允许用户更轻松地设置和操作连接器。该 UI 现在是 Debezium 版本的一部分,可供我们的社区使用!
下面让我们深入了解一下 UI 的一些功能。
UI 连接器列表
UI 的主页面显示所有已注册的连接器。主页的一些亮点如下:
-
可以通过标题中的下拉菜单选择 **Kafka Connect 集群**。
-
连接器表显示每个连接器及其类型(MySQL、PostgreSQL、MongoDB)、连接器状态和连接器任务。
-
可以展开连接器行以显示更多详细信息,如下所示的 'testPostgres' 连接器。指标显示在展开区域(**注意:**此功能仍在开发中,尚未实现)。连接器任务显示,并允许在需要时 **重启** 任务。
-
每个连接器行右侧的烤肉串菜单提供了一系列操作,允许用户 **暂停、恢复、重启或删除** 该连接器。
UI 创建连接器向导
用户可以通过单击主页面上的 **创建连接器** 按钮来创建连接器。向导的前两个步骤是必需的,其余步骤是可选的。每个步骤都会验证用户的输入,并在出现问题时提供反馈。成功完成步骤 1 和 2 后,用户可以继续到最后一页审核并创建连接器。
创建连接器 - 连接器类型 (必需)
在步骤 1 中选择连接器类型。目前支持 **MongoDB、MySQL 和 PostgreSQL** 连接器类型。更多连接器类型的添加正在进行中。
创建连接器 - 属性 (必需)
在步骤 2 中输入所选连接器的基本连接属性,并且必须先验证这些属性才能继续。高级连接属性也在该步骤的单独部分提供。成功验证后,用户可以继续进行后续步骤(附加属性)- 或者他们可以选择绕过附加属性,直接进入“审查”步骤。
创建连接器 - 附加属性 (可选)
附加属性是可选的,可以总结如下:
-
过滤器定义 - 输入 **正则表达式**,用于定义包含/排除将包含在 CDC 中的项目的过滤器。当输入和应用过滤器时,将显示包含的项目。
-
数据选项 - **快照** 和 **映射** 属性(可选)。可以查看并根据需要更改默认值。
-
运行时选项 - **引擎** 和 **心跳** 属性(可选)。可以查看并根据需要更改默认值。
创建连接器 - 审核
“**审查**”步骤提供了将用于创建连接器的配置摘要。如果对选择满意,请单击“完成”以创建连接器。如果需要调整属性,请导航回先前的步骤。
设计考虑
该 UI 实现为一个基于 Quarkus 的 Web 应用程序。后端配置了一个或多个 Kafka Connect 集群的 URL,并为前端提供了 REST 接口。前端用户界面主要使用 ReactJS 技术,并利用 Patternfly 的 React 组件和设计模式。
与 Debezium 中的所有内容一样,该 UI 完全开源(Apache 许可证 2.0 版)。您可以在 Github 上的 Debezium 组织下找到UI 源代码。
自己尝试
Debezium UI 容器镜像
Debezium UI 容器镜像 可用于运行该 UI。例如,运行以下命令以通过 Docker 启动 UI 并将其连接到现有的 Kafka Connect 实例(其中 KAFKA_CONNECT_URI 提供一个逗号分隔的可用 Kafka Connect URI 列表):
$ docker run -it --rm --name debezium-ui -p 8080:8080 -e KAFKA_CONNECT_URI=http://connect:8083 debezium/debezium-ui:1.7
UI 通过 REST 连接到 Kafka Connect,因此您需要确保后者是可访问的,例如,将两个组件运行在同一个 Docker 网络上。
| 目前,UI 连接到未进行身份验证的 Kafka Connect 实例。此外,UI 本身尚未实现任何授权或身份验证。在此之前,您应该使用自己的代理等来保护组件,并在需要时进行授权。 |
自包含示例
我们还创建了一个独立的示例 UI 演示,该示例包含在 Github 上的 debezium-examples 中。UI 演示包含一个 Docker Compose 文件,该文件会启动多个带有数据的源以及 UI。有关运行 Debezium UI 演示的更多详细信息,请参阅 README 文件。
要了解有关 Debezium UI 的更多信息,请参阅 参考文档。
后续步骤
我们计划在未来的版本中继续对 UI 进行改进和添加新功能。一些正在考虑的项目:
-
整合更多 Debezium 连接器类型,例如 SQL Server 和 Oracle 的连接器
-
添加配置主题创建设置和单条消息转换功能
-
添加和改进连接器指标和监控
-
添加创建后查看和编辑连接器属性的功能
-
…等等!
我们也非常乐意了解您对 Debezium UI 的需求和反馈。请在下面的评论中告诉我们,或发送消息至我们的 邮件列表。
非常感谢团队成员们付出的宝贵贡献:Ashique Ansari、Indra Shukla、June Zhang、Na Ding、René Kerner 和 Gunnar Morling!
关于 Debezium
Debezium 是一个开源的分布式平台,可以将现有数据库转变为事件流,使应用程序能够几乎即时地看到并响应数据库中已提交的每个行级更改。Debezium 构建在 Kafka 之上,并提供了 Kafka Connect 兼容的连接器,用于监控特定的数据库管理系统。Debezium 将数据更改的历史记录在 Kafka 日志中,这样您的应用程序可以随时停止和重新启动,并可以轻松地消费在未运行时错过的所有事件,确保所有事件都被正确且完整地处理。Debezium 在 Apache 许可证 2.0 下是 开源 的。