Atlas Infinite 是 MongoDB Atlas 版本,基于将计算与存储分离为独立层的架构构建,专为关键业务的高性能使用案例设计,并具有内置安全控制。这种设计可提供高性能、可扩展性和弹性。您可以独立快速地扩展计算和存储,从故障中快速恢复,并简化操作工作流。
要了解本文档在不同版本中的组织方式,请参阅 关于本文档。
架构
下图展示了 Atlas Infinite 如何将计算与存储分离。
Atlas Infinite 中的计算和存储作为独立层
在 Atlas Infinite 中,计算和存储是独立的层。应用程序的查询、事务和聚合在计算节点上运行。MongoDB 独立于计算层管理存储层,因此扩展集群层、添加只读节点和从节点故障中恢复等操作无需移动或复制数据即可运行。您的应用程序使用 MongoDB 驱动程序和其他连接方法连接到您的 Atlas Infinite 集群。您还可以使用 MongoDB 编程工具访问和管理集群。
要了解有关该架构的更多信息,请参阅 MongoDB Atlas Infinite:架构。
收益分析
通过将计算与存储分离,Atlas Infinite 使您能够:
独立扩展:您可以独立扩展集群层和存储容量,因此扩展集群层不需要扩展存储容量。
快速扩展:垂直和水平扩展 Atlas Infinite 非常快捷,因此您无需为高峰预先配置,也无需为应对事件而预先规划扩展。
简化操作:在 Atlas Infinite 中,您可以增加存储容量而无需停机。
最大化吞吐量和性能:Atlas Infinite 在存储层运行备份、恢复和时间点恢复,独立于计算层。这会将该工作从计算层卸载,从而留出更多容量来为您的应用程序工作负载提供服务。
性能
Atlas Infinite 架构为性能进行了优化。许多工作负载在 Atlas Infinite 上实现了高吞吐量。性能取决于工作负载,因此,请使用您自己的工作负载进行测试,以衡量影响。
弹性
Atlas Infinite 可以独立扩展计算和存储,因此您可以在不更改存储的情况下为工作负载峰值增加计算容量。Atlas Infinite 支持集群层的自动伸缩,并根据需求的变化进行扩展或缩减。您可以通过添加只读节点进行水平扩展,这些节点从存储层读取数据,并在几分钟内开始提供读取服务。
可扩展性
Atlas Infinite 可以独立于计算扩展存储,因此您可以增加存储容量以支持不断增长的企业级应用程序,而无需扩展集群层。
您还可以通过最大存储限制来限制存储。当 Atlas Infinite 集群的逻辑数据大小接近该限制时,Atlas 会阻止集群上的写入,但会继续提供读取服务。
在 Atlas Infinite 中,您可以通过提高集群层来垂直扩展集群。更大的层级可提供更多的存储吞吐量和存储 IOPS。当您垂直扩展集群时,Atlas Infinite 不会移动您的数据。
当您向 Atlas Infinite 集群添加只读节点时,它们会从存储层读取数据,并在几分钟内开始提供读取服务,无需进行初始同步。
安全性
Atlas Infinite 的设计旨在确保安全。它始终在数据离开计算节点之前对其进行加密,因此存储层无法读取您的应用程序数据。加密是强制性的,Atlas Infinite 支持客户数托管的数据加密密钥 (客户主密钥/BYOK)。
Atlas Infinite 支持以下安全控制:
要学习;了解Atlas如何对静态数据加密以及应用了哪些安全控制,请参阅Atlas Infinite 上的静态加密。有关Atlas Infinite 如何保护共享存储层中的数据的常见问题解答,请参阅常见问题解答:安全。
韧性与恢复
在 Atlas Infinite 中,存储层可确保您的数据具有持久性。MongoDB 不依赖计算节点来保证数据的持久性。Atlas Infinite 集群有两个可选举的计算节点:一个主节点 (primary node in the replica set) 和一个备用节点。它们共同构成一个高可用分片 (HA 分片),这是 Atlas Infinite 特有的单元,与 MongoDB 分片不同。如果主节点 (primary node in the replica set) 发生故障或重启,备用节点将成为主节点 (primary node in the replica set)。存储层协调从主节点 (primary node in the replica set) 到备用节点的故障转移,而不是在集群的节点之间进行选举,并使您最近的数据随时可用。备份、恢复和时间点恢复在存储层运行。
要了解复制和故障转移如何在 Atlas Infinite 集群上工作,请参阅 复制和故障转移。要了解备份和恢复,请参阅 恢复 Atlas Infinite 集群。
运维经验
您的应用程序无需更改代码即可在 Atlas Infinite 上运行。Atlas Infinite 使用 MongoDB 传输协议并支持完整的 MongoDB 查询 API,包括查询、聚合、索引和事务。
Atlas Infinite 也支持与以下工具一起使用:
mongoshCompass
Atlas Administration API,其中包含一些特定于 Atlas Infinite 的终结点
Atlas CLI,包含一些特定于 Atlas Infinite 的命令
Terraform 提供商,包含一些 Atlas Infinite 特有的属性
SQL 接口,直接在集群上启用
在 Atlas Infinite 集群上,您可以直接在集群上启用 SQL Interface,而无需通过联合数据库实例。
Atlas 提供针对 Atlas Infinite 的警报。
公开预览版可用性
公开预览版支持
Atlas Infinite 在公共预览版中支持以下功能:
完整的 MongoDB 数据库语义和功能:在公共预览期间,Atlas Infinite 集群运行最新的 MongoDB 9.x 版本,并使用 Atlas 用户界面中的 Latest Version With Auto Upgrades 发布选项。要了解更多信息,请参阅 Atlas 中的 MongoDB 版本。
集群层:
M10到M60General 副本集,以及M40到M60Low-CPU 副本集。存储容量:每个副本集最多 128 TB(逻辑)。您可以设置较低的最大存储限制。
云提供商区域:在公共预览版中,Atlas Infinite 仅部署在 Amazon Web Services 上。请参阅 Amazon Web Services (AWS) 区域表 中的 Atlas Infinite 支持 列。每个集群都部署在这些区域之一中。
客户数托管的数据加密密钥 (客户主密钥/BYOK):通过 AWS KMS。
备份,保留期最长可达 3 年。
通过在存储层运行的持续云备份进行时点还原。
mongodump、mongorestore以及mongoimport。要学习更多信息,请参阅将数据加载到 Atlas Infinite 集群中。SQL Interface,直接在集群上启用。
Atlas Data Federation,用于在 Atlas Infinite 和 Atlas Core 集群、云对象存储和 HTTP 终结点之间查询、转换和移动数据。
Atlas Stream Processing:Atlas Stream Processing 现已推出公共预览版。Atlas Stream Processing组件直接属于Atlas项目,并独立于Atlas集群运行。要学习;了解更多信息,请参阅 atlas-stream-processing。要了解更多信息,请参阅 Atlas Stream Processing。
AI Cluster Assistant,它了解 Atlas Infinite 集群,但没有关于其功能的完整上下文。
在公开预览版中不支持
Atlas Infinite 在公开预览版中不支持以下功能。随着 Atlas Infinite 增加对更多功能的支持,此列表可能会随时间而变化。请随时回来查看当前支持哪些功能。
多区域集群:Atlas Infinite 集群中的所有节点都部署在同一区域。
多云集群:Atlas Infinite 公开预览版不支持多云集群。在公开预览阶段,Atlas Infinite 集群仅部署在 AWS 上。
M80+ 集群层:在公共预览版中,Atlas Infinite 不支持 General 或 Low-CPU 集群类中的
M80及更大的集群层。分片集群:Atlas Infinite 在公开预览版中不支持分片集群。
Atlas全球集群:Atlas Infinite在公共预览版中不支持Atlas全球集群。全局写入需要Atlas全球集群,因此也不可用。
Atlas Online Archive:Atlas Online Archive 在公共预览版中不支持 Atlas Infinite 集群。
Atlas Kubernetes Operator:Atlas Kubernetes Operator 不支持公共预览版中的 Atlas Infinite 集群。
跨版本迁移和恢复:Atlas Infinite 不支持在 Atlas Core 和 Atlas Infinite 集群之间进行实时迁移或备份和恢复。
导入存档快照:Atlas Infinite 在公共预览版中不支持导入存档快照。
NVMe 存储:Atlas Infinite 在公开预览中不支持本地附加的 NVMe 固态硬盘 存储。
数据库版本变更:集群创建后,您无法在 Atlas Core 和 Atlas Infinite 之间更改其数据库版本。
无外部 oplog 重放:Atlas Infinite 不支持通过
mongorestore进行 oplog 重放。不要将mongodump --oplog选项或mongorestore --oplogReplay选项与 Atlas Infinite 集群一起使用。mongostat 输出受限:
mongostat报告的 Atlas Infinite 集群指标不完整。锁统计信息不可用,且mongostat未正确报告存储引擎。mongotop --locks:在 Atlas Infinite 集群上运行带有
--locks选项的mongotop会返回错误。Azure Key Vault 和 Google Cloud KMS:Atlas Infinite 仅通过公共预览版中的 AWS KMS 支持客户数托管密钥。
跨组织恢复:MongoDB 为每个 Atlas 组织托管一个单独的加密密钥,因此您只能在创建快照的组织内恢复快照。 要学习 Atlas 如何托管默认加密密钥,请参阅 Atlas Infinite 加密。
Atlas Charts:Atlas Infinite 在公共预览版中不支持 MongoDB Charts。
MongoDB for VS Code:Atlas Infinite 不支持 MongoDB for VS Code 扩展的公开预览版本。
MongoDB MCP 服务器:Atlas Infinite 在公共预览版中不支持 MongoDB MCP 服务器。
MongoDB Agent 技能:Atlas Infinite 在公开预览版中不支持 MongoDB Agent 技能。
日志下载和日志同步:Atlas Infinite 不支持在公开预览版中下载 MongoDB 日志或将日志同步到外部服务。
集合级别恢复:Atlas Infinite 公开预览版不支持恢复单个集合。
快照分发:在公共预览版中,Atlas Infinite 不支持将快照复制到其他区域。
快照下载和本地恢复:在公共预览版中,Atlas Infinite 不支持下载快照或将其恢复到本地部署。
可用时间 SLA: Atlas Infinite 在公开预览期间不提供可用时间 SLA。
独立且非对称的分片自动伸缩:Atlas Infinite 在公共预览版中不支持独立或非对称的分片自动伸缩。
数据库分析器:Atlas Infinite 在公共预览版中不支持启用数据库分析器。
与 Atlas Core 进行比较
Atlas 提供两个数据库版本:Atlas Core(计算和存储在同一节点上耦合)和 Atlas Infinite(一种解耦架构,其中每一层都可以独立扩展)。要详细比较这两个版本,请参阅 MongoDB Atlas 数据库版本。
关于本文档
大多数 Atlas 文档同时适用于 Atlas Core 和 Atlas Infinite,因为 Atlas 界面、驱动程序、API 和大多数操作工作流程在不同版本中都是相同的。文档描述了每个页面或部分应用的版本,如下所示:
适用于两个版本:除非页面另有说明,否则其内容同时适用于 Atlas Core 和 Atlas Infinite。
仅应用于一个版本:当内容仅应用于单个版本时,页面会在其标题或正文中标识该版本。
Atlas Infinite 不支持:当某项功能在 Atlas Infinite 公共预览版期间不可用时,页面会包含一条注释并提供指向受支持功能的链接。
在 Atlas Infinite 上的行为有所不同:当工作流或选项在不同版本之间存在差异时,页面或部分会当场指出差异。
此页面是 Atlas Infinite 的起始点。要查找有关特定功能的信息,请转到该功能的 Atlas 主题,并查找 Atlas Infinite 提示。