服务限制
在此页面上
Overview
在设计您的工具和客户端通过 App Services 与 MongoDB 的交互方式时,Atlas App Services 有几条需要牢记的准则。当决定如何构造查询、选择要使用的 CRUD 和聚合操作以及确定如何处理并发工作负载时,请牢记这些指导。
聚合(Aggregation)
App Services支持 系统函数 中的所有 聚合管道阶段 ,但$currentOp
和$indexStats
除外。
出于安全考虑,仅在用户函数中支持一部分聚合管道阶段。
有关可用的管道阶段及其允许的函数上下文列表,请参阅聚合。
Atlas
批量加载
当数据批量加载到 MongoDB Atlas 时,在 App Services 处理更改的过程中,可能会出现数据在设备上显示延迟的情况。
联合数据库实例
您可以将联合数据库实例作为 MongoDB 数据源链接到应用程序。不过,在使用 Atlas Data Federation 时,需要记住一些注意事项:
无服务器实例
您可以将无服务器实例作为 MongoDB 数据源链接到您的应用程序。不过,无服务器实例目前不支持变更流,因此以下功能受到限制:
您无法在无服务器实例上创建数据库触发器。
您无法将无服务器实例作为应用程序的 Device Sync 集群。
您无法监视作为无服务器 MongoDB Atlas 实例的更改数据源集合。
分片集群
Atlas Device Sync 目前不支持分片 MongoDB Atlas 集群。不过,您可以将分片集群添加为数据源,并通过函数对其进行访问。
时间序列集合
时间序列集合尚不支持变更流。因此,您无法在时间序列集合上定义触发器。
您可以将时间序列集合与 Atlas Device Sync 结合使用,但仅支持数据导入。
私有端点
App Services 支持私有端点,以便通过 AWS PrivateLink 安全地连接到 AWS 虚拟私有云。应用必须本地部署到 AWS 中的某个地区才能使用私有端点。App Services 不支持将私有端点用于全球应用或部署到 GCP 或 Azure 的应用。有关更多信息,请参阅私有端点。
Change Streams
App Services 基于给定集群的规模限制集群上所有应用打开的变更流总数。下表列出了针对每种集群规模的限制:
集群大小 | 最大变更流数 |
---|---|
免费套餐 ( M0 ) | 5 |
共享集群 ( M2 /M5 ) | 10 |
小型专用集群 ( M10 /M20 ) | 100 |
标准集群 ( M30 /M40 ) | 1000 |
标准集群 ( M50 — M90 ) | 1000 |
高性能集群 ( M100+ ) | 1000 |
注意
App Services 在与 Database Trigger 或 Device Sync 操作关联的每个集合上打开单个变更流。
重要
使用建议
要最大限度减少打开的变更流数,请采取以下措施:
仅在必要时启动同步操作。当任何打开的同步流不再需要时,立即将其关闭。
避免使用要求您同步不限数量集合的数据模型。
数据库命令
App Services不支持客户端 SDK 或 函数 中的任何 数据库命令 。但是,当通过传输协议连接到MongoDB 集群时,您可以调用有限的一部分数据库命令。 有关支持的命令列表,请参阅数据库命令。
设备同步
并发工作负载
您最多可以有5 , 000并发 Sync 连接。 请参阅请求流量。
- 写入:
- 为了提高性能,可能需要限制单个 MongoDB 文档的并发写入数量。App Services 对同时向一个 MongoDB 文档写入数据的用户数量没有硬性限制。但是,如果并发写入者超过 30,您可能会看到同步或冲突解决出现延迟。
- 读取:
- 从全局 Realm 读取数据的前端客户端具有高度可扩展性,可以支持数以万计的并发用户。
提示
可扩展性
如果您打算支持许多并发写入者,请让每个写入者操作不同的文档。
默认消息大小限制
对于从客户端应用程序发送的任何消息, Device Sync的默认消息大小限制为20 MB(压缩后)。 消息大小取决于从客户端设备发送的更改的压缩大小。 有关 Sync 使用的变更集和压缩的更多信息,请参阅变更集。
变更集的压缩大小并不直接等于上传中任何文档的大小。 但实际上,变更集大小通常与上传文档大小处于同一数量级。
此限制可用于防止连接消耗过多资源。
您可能会将此限制视为类似于failed to read: read
limited at 20971521 bytes
的错误消息。
您可以通过提交支持票证来请求更高的限制。
由于不活动而暂停
在 30 天没有活动后,Device Sync 将暂停。有关如何重新启用 Device Sync 的信息,请参阅重新启用 Sync。
MongoDB 版本要求
您可以使用 MongoDB 服务访问 MongoDB 3.6 版本的大多数 CRUD 和聚合功能,但 App Services 并不支持标准工具和客户端中提供的所有操作和功能。有关通过 App Services 连接到 MongoDB 时可以使用的特定 MongoDB 操作列表,请参阅 CRUD 和聚合 API 参考。
Device Sync 要求 MongoDB Atlas 集群运行特定版本的 MongoDB。灵活同步需要 MongoDB 5.0.0 或更高版本。
HTTP 版本要求
在发出请求时,Data API 和 HTTPS 端点需要使用 HTTP/1.1 或更高版本。
查询选项
App Services 支持系统函数中的所有查询选项。App Services 不支持从用户函数中运行的 CRUD 操作的某些选项。有关通过 App Services 连接到 MongoDB 时可以使用的特定选项列表,请参阅查询选项。
查询结果
通过 App Services 执行的 MongoDB 查询最多可返回 50,000 个文档。如需返回更多文档,请考虑对查询进行分页。
请求流量
App Services 将请求流量限制为以下默认值:
10 、 000并发请求。 任何超出非同步并发请求限制的请求都会收到 HTTP 响应状态代码429 - 请求过多 。
5,000 个并发 Device Sync 连接。
App Services 可以处理数倍于上述限制的请求。然而,实施这些限制是为了确保应用程序合理扩展,并防止 DOS 攻击和意外的计费问题。
您可以通过提交支持票证来请求更高的限制。
连接池化
App Services 使用连接池化来降低频繁打开和关闭请求与触发器执行之间连接的开销。连接根据需要打开。连接池化取决于几个因素:
集群层。集群层越高,池中可用的连接越多。
部署模式。全球部署在每个地区使用多台服务器,因此整体上具有更大的连接池。
服务。每个服务都有一个独立的连接池,因此应用中服务的数量不会影响可用连接的数量。
静态托管
App Services 对静态托管实施最大 25MB 的文件大小约束。
重要
静态托管已弃用。 了解更多。