后写架构
发现 Write-behind 的主要组件
Write-behind 允许您集成 Redis Enterprise(作为数据更改的来源)和下游数据库或数据存储。 Write-behind 捕获对 Redis 密钥空间中一组选定密钥模式的任何更改,并将其异步小批量写入下游数据库。这意味着您的应用不需要处理数据重塑或管理与下游数据库的连接。
Write-behind 可以将 Redis 中的键规范化为目标的一个或多个表中的多条记录。 要了解有关 write-behind 声明式作业和规范化的更多信息,请参阅 write-behind 快速入门指南。
后写拓扑
Write-behind 的 CLI 和引擎作为一个产品提供,可以同时运行引入和隐藏管道。 但是,两种不同类型的管道具有不同的拓扑结构。
Write-behind 引擎安装在包含应用程序数据的 Redis 数据库上,而不是安装在单独的暂存 Redis 数据库上。Write-behind 数据流及其控制平面仅向 Redis 数据库增加几百 MB 的一小部分空间。在 write-behind 拓扑中,Write-behind 在每个分片上并行处理数据,并建立从每个分片到下游数据库的单个连接。
模型转换
Write-behind 可以跟踪以下 Redis 类型的更改:
与引入方案不同,write-behind 没有模型转换的默认行为。您必须始终
创建声明性作业以指定 Redis 键和目标数据库记录之间的映射。
作业配置具有keys
和mapping
部分,这些部分有助于使这项任务变得简单。
Write-behind 组件
后写式 CLI
Write-behind 基于 Python 的 CLI 使用起来非常直观,并执行验证以帮助您避免错误。 CLI 使 Write-behind 在其整个生命周期内易于设置和管理它。
Write-behind 引擎
Write-behind 使用 Redis Gears 作为其运行时环境。已安装 Gears 和 Write-behind 引擎逻辑 在所有源 Redis Enterprise 数据库分片上,但只有主分片处理事件并处理管道。
Write-behind 引擎从 Redis Streams 中读取 Redis 更改事件(每个跟踪的键模式一个事件), 处理它们,并将它们翻译成 SQL 或目标数据库使用的任何其他语言。
Write-behind 使用事务将更改小批量写入目标。Write-behind 保证至少一次交付。如果发生任何网络问题、断开连接或其他临时故障, Write-behind 将继续尝试将更改写入目标。如果发生硬拒绝,Write-behind 将保留拒绝 记录和死信队列 (DLQ) 中的原因。
Write-behind 配置
Write-behind 配置保留在集群级别。配置由 CLI 编写deploy
命令,该命令将保存对配置文件的所有更改。此机制允许自动配置新分片
只要您需要,它就可以在分片和节点故障中幸存下来。