了解分布式 NoSQL 数据库

适用对象: NoSQL MongoDB Cassandra Gremlin

Azure Cosmos DB 是一个多区域分布式数据库平台,适用于任何规模的 NoSQL 数据库和关系数据库。 本文探讨 Azure Cosmos DB 的各种 NoSQL API 选项上下文中的分布式 NoSQL 数据库。

有关 Azure 中其他数据存储选项的详细信息,请参阅在 Azure 体系结构中心选择正确的数据存储

挑战

在维护数据库系统时,难题之一是,大多数数据库引擎都会应用闩锁机制来实施严格的 ACID 语义。 在数据库需要数据状态高度一致性的情况下,无论数据访问方式如何,此方法都是有益的。 尽管此方法可保证高度一致性,但它在并发性、延迟和可用性方面也会带来严重的弊端。 此限制本质上是一种体系结构限制,将强制具有高事务性工作负载的任何团队寻找解决方法,例如在许多不同的数据库或数据库节点上手动分发数据或将数据分片。 这些解决方法可能耗时且难以实现。

NoSQL 数据库

NoSQL 数据库旨在通过调整一致性来简化水平缩放,以最大程度地减少对并发、延迟和可用性的影响。 NoSQL 数据库提供可配置的一致性级别,以便数据可以跨多个节点缩放,并提供更符合应用程序需求的速度或可用性。

分布式数据库

分布式数据库跨多个不同实例或位置进行缩放。 虽然许多 NoSQL 数据库专为缩放而设计,但并非所有数据库都一定是分布式数据库。 此外,许多 NoSQL 数据库需要时间和精力来跨冗余节点进行分配,以便实现本地冗余或全局异地冗余。 多区域分布式数据库的规划、实现和网络要求可能比较复杂。

Azure Cosmos DB

如果使用的分布式数据库同时也是 NoSQL 数据库,则高事务性工作负荷会立刻变得更容易生成和管理。 Azure Cosmos DB 是一个数据库平台,它以 NoSQL 和关系数据库变体的形式提供分布式数据 API。 具体而言,许多 NoSQL API 均提供多种一致性选项,使你能够微调一致性或可用性级别以满足实际应用程序要求。 可以将数据库配置为提供高度一致性,并权衡速度和可用性。 同样,可以将数据库配置为提供最佳性能,同时对复制数据的一致性和延迟进行可预测的权衡。 Azure Cosmos DB 会跨本地实例自动动态分配数据,或在多个区域中这样做。 Azure Cosmos DB 还可以提供 ACID 保证和缩放吞吐量,以符合应用程序的要求。

后续步骤

想要开始使用 Azure Cosmos DB?