Device Sync 生产检查清单
Atlas Device Sync 、 Atlas Edge Server 、 Data API和HTTPS endpoints均已弃用。 有关详细信息,请参阅弃用页面。
我们建议遵循这些最佳实践,以确保最佳性能和流畅的用户体验。
有关服务限制的相关信息,请参阅服务限制。
Atlas 集群配置
- 使用专用 Atlas 集群
生产应用程序应至少使用个
M10
专用集群。 根据您的使用案例,您可能需要升级到更高层级才能获得最佳性能。如果您使用共享集群,例如
M0
、M2
或M5
,则可能会由于资源有限以及与其他用户的争用而遇到性能问题。 如果在Go到生产后从共享层级升级到专用层级,则需要终止 Device Sync并重置或重新安装所有应用程序。- Atlas oplog
- Device Sync需要访问权限同步集群的基于时间的oplog 。 默认,所有新的Atlas集群都提供此功能。 为获得最佳结果,请使用Device Sync为集群保留48小时的oplog 。
- MongoDB 版本
- 尽可能使用最新版本的 MongoDB。 某些 Device Sync 优化使用新的 MongoDB 版本功能和增强功能。
- NVMe 最低 MongoDB 版本
- 如果集群在使用NVMe 存储的硬件上运行,则必须为Device Sync生产应用程序使用MongoDB 6.0或更高版本。
- 禁用或托管内置模式验证
App Services中的模式与MongoDB 的内置模式验证不同。 Device Sync可能会以与内置模式不兼容的方式与集群交互。
如果在集群上使用模式验证,则应将其禁用以支持 App Services 模式,或者托管两个模式验证层以使其兼容。有关详细信息,请参阅App Services 模式与内置模式验证。
App Services 配置
客户端应用程序代码
- 定义客户端重置处理程序
- 要从服务器和域历史记录不一致的严重错误情况中恢复,应在使用 SDK 打开每个同步域时定义客户端重置处理程序。
Realm 数据模型和模式
- 避免破坏性变更 (breaking change)
- 启用同步后,修改Realm 数据模型的方式就会受到限制。具体来说,Sync 不支持对 Realm 对象类型进行破坏性变更 (breaking change),例如更改给定属性的类型。如果要进行破坏性变更 (breaking change),则需要终止并重新启用与更新的Realm 数据模型的同步。
- App Services 模式数据一致性
- 如果使用其他工具(例如mongoshshell 或 )创建或修改Device SyncMongoDB Compass 文档,请确保文档根据集合的App Services模式进行验证。有关更多信息,请参阅未同步的文档。
性能最佳实践
- 生产负载测试
- 通过同步生产负载测试来衡量性能并在扩大的生产部署中发现问题。
- 写事务(write transaction)大小
- 写入大量数据时,请考虑使用多个小型写事务(write transaction),而不是单个较大的事务。根据您的 Atlas 集群版本和配置,大于 16MB 的写事务(write transaction)可能会被 MongoDB 拒绝,并导致同步操作失败。