一文读懂:如何使用 MongoDB Atlas 无服务器实例更高效地开发应用程序

本文涉及的产品
云数据库 Tair(兼容Redis),内存型 2GB
云数据库 RDS MySQL,集群系列 2核4GB
推荐场景:
搭建个人博客
Redis 开源版,标准版 2GB
推荐场景:
搭建游戏排行榜
简介: MongoDB系列技术文章精选

身为开发者,您可不想耗费大量时间操心数据库,预配置集群或调整集群大小。同样地,您可能也不希望因未能正确扩展而导致经费超标。

MongoDB Atlas 可为您提供多个数据库部署选项。虽然您可以选择预先配置的共享或专用集群,但为了能够以最佳方式满足需求,您仍然不得不持续确定数据库资源的规模并作出相关估算,以及负责随之而来的集群容量管理。

尽管预先配置集群并非坏事,但若是您的开发处于闲置状态,或者开发的增长期或下滑期频繁出现,预先配置可能就没有意义了。此时,您完全可以转为选择无服务器实例来协助减轻容量管理的负担,腾出时间来专门编写代码。

无服务器实例为您的应用程序提供按需数据库端点,该端点将根据应用程序需求自动扩展或缩减到零,并且只根据您的使用情况向您收费。

在这个简短但贴心的教程中,我们会探索如何轻松应用 MongoDB Atlas 无服务器实例,以及如何以其为参照开发应用程序。

部署 MongoDB Atlas 无服务器实例

我们首先来看如何部署新的 MongoDB Atlas 无服务器实例。

完成 MongoDB 部署的方法有很多,但在本文的示例中,我们将始终使用 Web 仪表盘和一些点击操作。

在 MongoDB Atlas仪表盘中,单击“创建”按钮。

image.png

选择“无服务器”以及应当存储此实例的云供应商。

如果可能,请选择与您的应用程序所在位置相匹配的云供应商。这样可确保您的数据库和应用程序之间的延迟最低。

选择单击“创建实例”按钮后,实例即已准备就绪!

不过,这些操作还不够。要想在 Web 仪表盘之外的位置使用 Atlas 无服务器实例,就需要先创建一些数据库访问规则和网络访问规则。

我们先来添加一个新数据库用户。

image.png

选择对您来说最合理的身份验证类型。为了使本教程简单明了,我建议选择“密码”选项。

涉及到用户权限时,您当然可以使用“内置角色”,但对于任意应用程序,最好还是根据应允许用户执行的操作来定义“特定权限”。在这个项目中,我们将使用一个“示例”数据库和一个“人员”集合,因此只授予该数据库和集合 readWrite 访问权限才是合理做法。

在创建用户及定义访问权限时,请运用自己的最佳判断力。

创建用户后,我们就可以处理网络访问的相关内容。完成最后这一步后,我们就能够以数据库为参照开始开发工作。

image.png

在“网络访问”选项卡中,添加应允许访问的 IP 地址。如果您像我一样在本地开发和测试,只需添加您的本地 IP 地址即可。请务必记得在必要时为您的服务器或云供应商添加 IP 范围。如果需要,您还可以使用专用网络。

数据库和网络访问的设置已经完成,我们现在应获取将在本教程下一步中使用的 URI 字符串。

在“数据库”选项卡中,单击无服务器实例对应的“连接”按钮。
image.png

选择要使用的编程语言并记下 URI。

使用热门编程技术与 Atlas 无服务器实例交互

到这里,您应该已经部署了 Atlas 无服务器实例。我们会花一点时间利用应用程序代码来连接实例,并进行一些交互,例如基本的 CRUD。

对于此特定示例,我们将搭配使用 JavaScript 与 MongoDB Node.js 驱动程序,但相同的规则和概念会继续应用,只是与您希望使用的编程语言存在语言差异。

在本地计算机上,创建项目目录,并使用命令行导航到该目录。在它成为您的工作目录后,您就需要执行以下命令:
image.png

通过上面的命令,我们完成 Node.js 项目初始化,安装了 MongoDB Node.js 驱动程序,并创建了一个包含我们的代码的 main.js 文件。

打开 main.js 文件并添加以下 JavaScript 代码:

image.png

那么,上面的代码发生了什么?

首先,我们会使用无服务器实例的 URI 字符串来定义客户端。这个字符串与您在本教程前面记录的字符串相同,其应该包含用户名和密码。

在客户端中,我们可以建立连接并获得对要使用之数据库和集合的引用。在运行应用程序之前,数据库和集合不需要存在。

接下来,我们将使用 MongoDB 查询 API 执行三种不同的操作。首先,向我们的集合插入一个新文档。插入完成后,在 try/catch 块没有发现错误的情况下,我们会找到姓氏匹配的所有文档。对于此示例,应该只有一个文档,但您完全没法知道您的代码是什么样子。如果找到一个文档,它就会被打印到控制台。最后,我们将删除姓氏匹配的任何文档。

最后,若您跟着我的示例执行所有步骤,那么您的集合中不应该存在任何文档。然而,您的集合中(在某个时间点)确实存在过一个文档,只不过我们将它删除了。

我们通过一个基本示例了解了如何围绕按需数据库构建应用程序,但这个示例并没有真正凸显出如此操作的好处。怎么改变这个情况呢?

使用合理的应用场景推送Atlas 无服务器实例

我们知道,预先配置和无服务器集群能够稳定运作。从开发的角度来看,使用相同的代码最终会得到相同的结果。

让我们来设想一个场景:Atlas 中的无服务器实例可以降低开发成本、减少扩展负担以满足需求。假设您有一个不是常规类型的网上商店。这家网上商店大部分时间的客流量都很少,但由于您主营闪电式交易,每周五上午 9 点到中午 12 点之间的客流量会激增 1000%。

我就不赘述较低的客流量,但 1000% 的流量增长不容小觑,很可能需要每周五对预先配置的集群进行某种扩展干预才行。否则,您就需要付费使用更大型的数据库。

让我们使用下面的 Node.js 代码具象化这个示例:
image.png

在上面的示例中,我们采用了由 Express 框架提供技术支持的 Web 应用程序,其中有两个端点函数。一个端点用于获得交易,另一个端点则用于创建购买。其余内容,请自行想象。

要对流量会突发的这款应用程序执行负载测试并模拟无服务器实例的潜在价值,我们可以使用 Apache JMeter 等类似工具。

使用 JMeter 后,您可以定义它在发出 HTTP 请求时使用的线程数和迭代次数。

image.png

请记住,我们在此示例中模拟的是一种突发情况。如果您确实决定要尝试 JMeter,且面对突发情况时过度操作,您收到的帐单或许会让您哭笑不得。如果您有兴趣了解无服务器的计费方式,请点击“阅读原文”查看定价。
image.png

在 JMeter 线程组中,您需要定义每个线程或迭代所发生的活动。在本例中,我们向 Node.js API 发送 HTTP 请求。

由于 API 需要 JSON,我们可以定义请求的标头信息。
image.png

取得线程信息、HTTP 请求信息和标头信息后,您就可以运行 JMeter,最终会看到同时参照 Web 应用程序和数据库而推进的大量活动。

同样,此示例的很多内容都会留给您自行想象,因为要想看到无服务器实例的扩展优势,您就需要开发过程中难以模拟的大量突发流量。无论如何,这个示例应该能给您带来一些启发。

结论

从上面的示例可以看到,利用 MongoDB Atlas 开发可以多么快速,其还能为您免去亲自调整集群大小的负担。使用 MongoDB Atlas 无服务器实例后,您的数据库能够适当扩展以满足应用程序需求,且您只需为具体需求付费。这样就不必为不间断运行且大小并不合适的集群付费。它还能为您节省时间,不必对集群进行大小调整。

无论您使用的是 Atlas 无服务器实例还是预先配置的共享或专用集群,此示例中的代码都能发挥应有作用。

相关实践学习
【文生图】一键部署Stable Diffusion基于函数计算
本实验教你如何在函数计算FC上从零开始部署Stable Diffusion来进行AI绘画创作,开启AIGC盲盒。函数计算提供一定的免费额度供用户使用。本实验答疑钉钉群:29290019867
建立 Serverless 思维
本课程包括: Serverless 应用引擎的概念, 为开发者带来的实际价值, 以及让您了解常见的 Serverless 架构模式
相关文章
|
1天前
|
存储 弹性计算 人工智能
阿里云服务器ECS g8i实例怎么样?新一代g8i实例技术特性与场景应用解析
阿里云服务器ECS g8i实例怎么样?对于很多企业用户说,云服务器的性能、安全性和AI能力是用户非常关注的。无论是处理大规模数据、运行复杂算法,还是保障业务应用的安全,都需要云服务器具备卓越的性能和强大的功能。阿里云推出的第八代云服务器ECS g8i实例,凭借其卓越的性能、增强的AI能力和全面的安全防护,成为了市场关注的焦点。本文将为大家解析ECS g8i实例的技术特性、产品优势、适用场景及与同类产品的对比,同时介绍其收费标准和活动价格,以供大家了解和选择。
阿里云服务器ECS g8i实例怎么样?新一代g8i实例技术特性与场景应用解析
|
6天前
|
存储 弹性计算 算法
阿里云服务器实例选购参考:经济型e实例与通用算力型u1实例性能、价格与适用场景解析
在阿里云目前的云服务器实例规格中,通用算力型u1和经济型e实例的云服务器凭借其相对较低的活动价格,成为了众多用户关注的焦点。其中经济型e(ecs.e-c1m1.large)实例2核2G3M带宽特惠价99元1年,通用算力型u1实例(ecs.u1-c1m2.large)2核4G5M带宽特惠价199元1年。由于经济型e实例属于共享型实例规格,而通用算力型u1实例则是独享型实例规格,因此,用户在选择时往往会对这两款云服务器的性能、适用场景及价格进行比较。本文将为您详细介绍这两款云服务器的区别、性能特点、适用场景及价格对比,以供参考和选择。
|
8天前
|
存储 弹性计算 数据处理
阿里云服务器2核8G、4核16G、8核32G配置热门实例价格、性能与场景全攻略
2核8G/4核16G/8核32G配置的阿里云服务器在阿里云活动中目前有经济型e、通用算力型u1、通用型c7、通用型g8i和通用型g8y五种实例可选,虽然配置相同,但是这些实例规格之间的价格差别是很大的。面对不同配置和类型的云服务器实例,有的新手用户往往因为不知道他们之间的区别,所以不知道如何选择。本文将针对常见的2核8G、4核16G、8核32G配置,深入剖析阿里云服务器中的经济型e、通用算力型u1、通用型g7及通用型g8y实例,以供大家参考和选择。
|
17天前
|
弹性计算 固态存储 ice
阿里云服务器ECS内存型2核16G、4核32G和8核64G配置实例、费用和性能参数表
本文整理了2025年阿里云服务器租赁价格表,涵盖2核16G、4核32G和8核64G配置收费标准。CPU内存比为1:8,提供多种实例规格如ECS内存型r8i、通用算力型u1等。价格由CPU内存、公网带宽及系统盘组成,支持优惠折扣(年付6.7折起)。文中详细列出各配置参考价格、公网带宽与系统盘收费,并对比不同实例规格性能,如Intel Xeon和AMD EPYC处理器系列,帮助用户选择高性价比方案。具体价格以阿里云官网为准。
79 4
|
20天前
|
存储 人工智能 弹性计算
阿里云服务器五代至八代实例对比:性能对比与精准选型指南参考
目前,阿里云服务器最新的实例规格已经升级到第九代,不过主售的云服务器实例规格还是以七代和八代云服务器为主。对于初次接触阿里云服务器实例规格的用户来说,可能并不清楚阿里云服务器五代、六代、七代、八代实例有哪些,以及它们之间有何区别。本文将详细介绍阿里云五代、六代、七代、八代云服务器实例规格,并对比它们在性能方面的提升,以供参考和选择。
|
21天前
|
存储 人工智能 分布式计算
阿里云服务器实例规格选择参考:如何根据业务场景选择适合自己的实例规格
在我们购买阿里云服务器的时候,阿里云提供了众多的云服务器实例规格,满足了不同行业、不同业务场景的多样化需求。然而,面对众多的实例选择,如何根据自身的业务特性,挑选出最合适的云服务器实例规格,成为了众多用户,尤其是新手用户比较关心的问题。本文旨在通过深入剖析阿里云服务器的各类实例规格,结合具体的业务场景,为您提供一份详尽的实例规格选择指南,以供参考和选择。
|
22天前
|
存储 分布式计算 监控
阿里云服务器实例经济型e、通用算力型u1、计算型c8i、通用型g8i、内存型r8i详解与选择策略
在阿里云现在的活动中,可选的云服务器实例规格主要有经济型e、通用算力型u1、计算型c8i、通用型g8i、内存型r8i实例,虽然阿里云在活动中提供了多种不同规格的云服务器实例,以满足不同用户和应用场景的需求。但是有的用户并不清楚他们的性能如何,应该如何选择。本文将详细介绍阿里云服务器中的经济型e、通用算力型u1、计算型c8i、通用型g8i、内存型r8i实例的性能、适用场景及选择参考,帮助用户根据自身需求做出更加精准的选择。
|
27天前
|
存储 弹性计算 安全
阿里云服务器ECS通用型规格族解析:实例规格、性能基准与场景化应用指南
作为ECS产品矩阵中的核心序列,通用型规格族以均衡的计算、内存、网络和存储性能著称,覆盖从基础应用到高性能计算的广泛场景。通用型规格族属于独享型云服务器,实例采用固定CPU调度模式,实例的每个CPU绑定到一个物理CPU超线程,实例间无CPU资源争抢,实例计算性能稳定且有严格的SLA保证,在性能上会更加稳定,高负载情况下也不会出现资源争夺现象。本文将深度解析阿里云ECS通用型规格族的技术架构、实例规格特性、最新价格政策及典型应用场景,为云计算选型提供参考。
|
1月前
|
弹性计算 缓存 前端开发
阿里云服务器ECS u1、c7、e实例、c8i实例有什么区别?性能有差异吗?
阿里云ECS实例包括经济型e、通用算力型u1、计算型c7和c8i,性能与价格各异。经济型e为共享型,适合轻量应用;u1性价比高,适配中小型企业需求;c7和c8i为企业级独享型,性能依次递增,适用于高性能场景。以2核4G为例,u1实例199元/年起,带5M带宽;c7和c8i价格更高但性能更强。选择时需根据实际需求权衡性能与成本。
|
1月前
|
存储 机器学习/深度学习 人工智能
阿里云服务器第八代通用型g8i实例评测:性能与适用场景解析
阿里云服务器通用型g8i实例怎么样?g8i实例采用CIPU+飞天技术架构,并搭载最新的Intel 第五代至强可扩展处理器(代号EMR),不仅性能得到大幅提升,同时还拥有AMX加持的AI能力增强,以及全球范围内率先支持的TDX机密虚拟机能力。这些特性使得g8i实例在AI增强和全面安全防护两大方面表现出色,尤其适用于在线音视频及AI相关应用。本文将深入探讨g8i实例的产品特性、优势、适用场景及规格族,以帮助您更好地了解这款产品,以供参考和选择。

推荐镜像

更多