规划主动-主动数据库的注意事项
规划部署时要考虑的主动-主动数据库信息,例如兼容性、限制和特殊配置
Redis 企业软件 |
---|
在 Redis Enterprise 中,主动-主动异地分发基于无冲突复制数据类型 (CRDT) 技术。与没有异地分布的数据库相比,主动-主动数据库具有更复杂的复制和网络,以及不同的数据类型。
由于主动-主动数据库的复杂性,在规划主动-主动数据库时需要牢记一些特殊注意事项。
有关异地分布式复制的更多信息,请参阅主动-主动 Redis。有关其他高可用性功能的更多信息,请参阅持久性和高可用性。
参与的集群
主动-主动数据库至少需要两个参与集群。如果您的数据库需要 10 个以上的参与集群,请联系 Redis 支持。您可以在创建数据库后添加或删除参与的集群。
从集群管理器 UI 对主动-主动数据库配置所做的更改仅适用于您正在编辑的集群。对于所有集群的全局配置更改,请使用crdb-cli
命令行实用程序。
内存限制
数据库内存限制定义集群上所有数据库副本和分片的数据库最大大小。您的内存限制还决定了分片的数量。
除了数据集之外,内存限制还必须考虑复制、主动-主动元数据和模块开销。这些功能可以增加您的数据库大小,有时会增加两倍或更多。
调整数据库大小时要考虑的因素:
- 数据集大小:您希望限制高于数据集大小,以便为开销留出空间。
- 数据库吞吐量:高吞吐量需要更多的分片,从而导致更高的内存限制。
- Modules:将 modules 与数据库一起使用会消耗更多内存。
- 数据库集群:使您能够将数据分散到跨多个节点的分片中(横向扩展)。
- 数据库复制:启用复制会使内存消耗翻倍
- 主动-主动复制:启用主动-主动复制所需的内存是常规复制的两倍,最高可达每个实例原始数据大小的两倍 (2x)。
- 用于分片之间同步的数据库复制积压。默认情况下,此字段设置为数据库大小的 1%。
- 用于集群之间同步的主动-主动复制积压。默认情况下,此字段设置为数据库大小的 1%。
此外,了解主动-主动数据库激活驱逐策略的阈值较低也很重要,因为它需要传播到所有参与的集群。当其中一个 Active-Active 实例达到其内存限制的 80% 时,驱逐策略开始驱逐密钥。
联网
主动-主动数据库的网络要求包括:
在创建主动-主动数据库之前,必须配置集群之间的网络。如果集群之间没有连接,则设置将失败。
网络端口
每个节点都必须能够访问每个其他节点的 REST API 端口,以及用于代理、VPN 和集群管理器 UI 的其他端口。有关更多详细信息,请参阅网络端口配置。应允许这些端口通过可能位于集群之间的防火墙。
网络时间服务
主动-主动数据库需要 NTP 或 Chrony 等时间服务,以确保所有集群节点上的时钟同步。 这对于避免可能影响数据完整性的内部集群通信问题至关重要。
有关更多信息,请参阅同步集群节点时钟。
Redis 模块
多个 Redis 模块与主动-主动数据库兼容。查找兼容的 Redis 模块列表。
局限性
主动-主动数据库具有以下限制:
- 现有数据库不能更改为主动-主动数据库。要将数据从现有数据库移动到主动-主动数据库,您必须创建新的主动-主动数据库并迁移数据。
- 主动-主动数据库不支持发现服务。主动-主动数据库需要 FQDN 或 mDNS。
- 这
FLUSH
CLI 不支持命令。要刷新数据库,请使用 API 或 Cluster Manager UI。 - 这
UNLINK
command 是所有类型键的阻止命令。 - 跨槽多命令(例如
MSET
) 不支持主动-主动数据库。 - 创建数据库后,无法更改哈希策略。
- 如果主动-主动数据库在闪存上运行,则无法添加仅在 RAM 上运行的参与集群。