主动-主动地理分布式Redis

Redis企业软件中的Active-Active数据库概述

在Redis Enterprise中,Active-Active地理分布基于CRDT技术。 Redis Enterprise对CRDT的实现称为Active-Active数据库(以前称为CRDB)。 使用Active-Active数据库,应用程序可以从不同的地理位置无缝地读取和写入同一数据集,延迟小于一毫秒(ms), 而无需更改应用程序连接到数据库的方式。

Active-Active 数据库还为地理分布的用户提供灾难恢复和加速数据读取访问。

高可用性

Active-Active复制提供的高可用性建立在多个Redis企业软件功能(如集群复制副本高可用性)以及一些Active-Active独有的功能(多主复制自动冲突解决强最终一致性)之上。

在Active-Active数据库中,集群和复制一起使用,以在多个节点和多个集群之间分发数据集的多个副本。因此,节点或集群不太可能成为单点故障。如果主节点或主分片失败,副本会自动提升为主节点。为了避免一个节点持有某些数据的所有副本,replica HA功能(默认启用)会自动将副本分片迁移到可用节点。

多主复制

在Redis企业版软件中,复制将数据从主分片复制到副本分片。主动-主动地理分布式复制还将主分片和副本分片复制到其他集群。每个主动-主动数据库需要跨越至少两个集群;这些被称为参与集群。

每个参与的集群都托管着您的数据库的一个实例,每个实例都有自己的主节点。拥有多个主节点意味着您可以连接到任何参与的集群中的代理。连接到地理上最近的集群可以实现接近本地的延迟。多主复制(以前称为多主复制)还意味着,如果其中一个参与的集群发生故障,您的用户仍然可以访问数据库。

注意:
主动-主动数据库不会复制整个数据库,只会复制数据。 数据库配置、LUA脚本和其他支持信息不会被复制。

同步器

在多个集群之间保持数据集的多份副本一致并非易事。为了实现参与集群之间的一致性,Redis Active-Active 复制使用了一个称为 syncer 的过程。

同步器维护一个复制积压,它存储同步器发送给其他参与集群的数据集更改。同步器使用部分同步来保持副本与更改的更新,或者在副本或主节点丢失的情况下使用完全同步。

冲突解决

因为您可以连接到任何参与的集群来执行写操作,所以并发和冲突的写操作总是可能的。冲突解决是Active-Active技术的重要组成部分。Active-Active数据库仅使用无冲突复制数据类型(CRDTs)。这些数据类型提供了可预测的冲突解决,并且不需要应用程序或客户端进行任何额外的工作。

在使用CRDTs开发Active-Active数据库时,您需要考虑一些重要的差异。有关更多信息,请参阅使用Active-Active数据库开发应用程序

强最终一致性

为复制的数据库保持强一致性会在可扩展性和可用性方面带来权衡。Redis Active-Active 数据库使用强最终一致性模型,这意味着本地值在短时间内可能在不同副本之间有所不同,但它们最终都会收敛到一个一致的状态。Redis 使用向量时钟和 CRDT 冲突解决来增强副本之间的一致性。您还可以启用因果一致性功能,以在副本之间同步操作时保持操作的顺序。

其他Redis企业版软件功能也可以用来增强您的Active-Active数据库的性能、可扩展性或持久性。这些功能包括数据持久化多个活动代理分布式同步OSS集群API机架区域感知

下一步

RATE THIS PAGE
Back to top ↑