建筑

了解 RDI 的主要组件

概述

RDI 实现了一个变更数据捕获 (CDC) 模式,该模式跟踪 非 Redis 数据库,并对 Redis 目标数据库进行相应的更改。您可以将目标用作缓存以提高性能 因为它通常比 Source 更快地处理 read 查询。

要使用 RDI,您需要定义一个数据集来指定哪些数据项 您希望从源捕获以及您希望如何捕获 在目标中表示它们。例如,如果源是 关系数据库,然后指定所需的表列 进行捕获,但您不需要将它们存储在等效的表中 结构体。这意味着您可以选择任何目标 表示最适合您的应用程序。要从 source 应用于目标表示形式,则 RDI 会在捕获后对数据应用转换。

RDI 使用 实现多个处理步骤的数据管道 奕:

  1. CDC 收集器捕获对源数据库的更改。RDI 目前使用一个名为 Debezium 的开源收集器来完成此步骤。

  2. 收集器使用 Redis 流记录捕获的更改 在 RDI 数据库中。

  3. 流处理器从流中读取数据并应用 您定义的任何转换(如果您不需要 任何自定义转换,则它使用默认值)。 然后,它将数据写入目标数据库供应用程序使用。

请注意,RDI 控制进程在专用虚拟机 (VM) 上运行 Redis 之外 保存目标数据库的企业集群。但是,RDI 会保留 其状态和配置数据,以及与目标位于同一集群上的 Redis 数据库中的更改数据流。下图显示了管道步骤以及数据从源到目标的路径:

首次启动 RDI 时,目标数据库为空,因此所有 的 数据本质上是 “更改” 数据。 RDI 在一个称为初始缓存加载的阶段收集这些数据。 这可能需要几分钟或几小时才能完成,具体取决于大小 的源数据。初始缓存加载完成后, 目标中有一个快照数据集,它将逐渐 更改从源捕获新数据的时间。此时, RDI 会自动进入第二个阶段,称为更改流式处理,其中 数据中的更改是在发生时捕获的。变化通常是 在捕获后的几秒钟内添加到目标中。

背压机制

有时,数据记录添加到流中的速度比 RDI 快 处理它们。如果目标速度变慢或断开连接,则可能会发生这种情况 或者仅仅是源快速生成大量更改数据。 如果这种情况继续下去,那么流最终将占据所有 可用内存。当 RDI 检测到这种情况时,它会应用背压机制来减慢或停止传入数据流。 更改数据将保留在源中,直到 RDI 清除积压工作,并且具有 有足够的可用内存来恢复流式传输。

注意:
Debezium 日志有时会报告 RDI 已用完 的内存(通常在创建初始快照时)。这不是 一个错误,只是一条信息性消息,指出 RDI 已应用 背压机制。

支持的源

RDI 使用 Debezium Server 连接器支持以下数据库源:

数据库 版本 AWS RDS 版本 GCP SQL 版本
神谕 12c、19c、21c 19c、21c -
MariaDB的 10.5, 11.4.3 10.4 到 10.11、11.4.3 -
MySQL (MySQL的 5.7、8.0.x、8.2 8.0.x 版本 8.0
PostgreSQL 数据库 10, 11, 12, 13, 14, 15, 16 11, 12, 13, 14, 15, 16 15
SQL 服务器 2017, 2019, 2022 2016, 2017, 2019, 2022 2019
AlloyDB PostgreSQL 版 14.2, 15.7 - 14.2, 15.7
AWS Aurora/PostgreSQL 15 15 -

RDI 的部署方式

RDI 设计有两个提供其服务的平面控制平面包含使 RDI 保持活动状态的进程。 它包括:

  • 调度 CDC 收集器和 stream processor 实现管道的两个阶段 生命周期(初始缓存加载和更改流式处理)
  • 一个 Prometheus 终端节点,用于提供有关 RDI 的指标
  • 用于控制 VM 的 REST API。

管理平面提供了让您能够交互的工具 替换为 control plane。使用 CLI 工具安装和管理 RDI 以及部署和管理管道。使用管道编辑器 (包含在 Redis Insight 中)来设计或编辑管道。这 下图显示了 Control and Management 的组件 planes 和它们之间的连接:

以下部分介绍了可用于 部署 RDI。

您自己的 VM 上的 RDI

对于此部署,您必须提供两个 VM。这 收集器和流处理器在一个 VM 上处于活动状态,而另一个 VM 是备用 VM 以提供高可用性。运算符在两个 VM 上运行,并使用算法来确定哪个是活动 VM(“领导者”)。 活动 VM 和备用 VM 需要访问 RDI 用于加密网络的身份验证密钥 交通。下图显示了此配置:

有关详细信息,请参阅在 VM 上安装

Kubernetes 上的 RDI

您可以使用 RDI Helm Chart 进行安装 在 Kubernetes (K8s) 上,包括 Red Hat OpenShift。这将创建:

有关更多信息,请参阅在 Kubernetes 上安装

机密和安全注意事项

RDI 使用 TLSmTLS 加密所有网络连接。 连接的凭证保存为 Secret 和您 可以选择如何向 RDI 提供这些密钥。请注意,RDI 存储 Redis Enterprise 集群内的所有状态和配置数据 并且不会在 RDI VM 或其他任何位置存储任何其他数据 群集外。

为本页评分
返回顶部 ↑