电子商务基础网站建设与维护单项选择题,关键词推广名词解释,苏州凌云建设有限公司,有没有做古装衣服的网站使用 MongoDB Atlas无服务器实例更高效地开发应用程序
身为开发者#xff0c;数据库并不一定需要您来操心。您可不想耗费时间来预配置集群或调整集群大小。同样地#xff0c;您也不想操心因未能正确扩展而导致经费超标。
MongoDB Atlas 可为您提供多个数据库部署选项。虽然…使用 MongoDB Atlas无服务器实例更高效地开发应用程序
身为开发者数据库并不一定需要您来操心。您可不想耗费时间来预配置集群或调整集群大小。同样地您也不想操心因未能正确扩展而导致经费超标。
MongoDB Atlas 可为您提供多个数据库部署选项。虽然您可以选择预先配置的共享或专用集群但为了能够以最佳方式满足需求您仍然不得不持续确定数据库资源的规模并作出相关估算以及负责随之而来的集群容量管理。尽管预先配置集群并非什么坏事但若是您的开发处于闲置状态或者开发的增长期或下滑期频繁出现预先配置可能就没有意义了。此时您完全可以转为选择无服务器实例来协助减轻容量管理的负担腾出时间来专门编写代码。无服务器实例为您的应用程序提供按需数据库端点该端点将根据应用程序需求自动扩展或缩减到零并且只根据您的使用情况向您收费。
在这个简短但贴心的教程中我们会探索如何轻松应用 MongoDB Atlas 无服务器实例以及如何以其为参照开发应用程序。
部署 MongoDB Atlas无服务器实例
我们首先来看如何部署新的 MongoDB Atlas 无服务器实例。完成 MongoDB 部署的方法有很多但在本文的示例中我们将始终使用 Web 仪表盘和一些点击操作。
在 MongoDB Atlas仪表盘中单击“创建”按钮。
选择“无服务器”以及应当存储此实例的云供应商。
如果可能请选择与您的应用程序所在位置相匹配的云供应商。这样可确保您的数据库和应用程序之间的延迟最低。
选择单击“创建实例”按钮后实例即已准备就绪
不过这些操作还不够。要想在 Web 仪表盘之外的位置使用 Atlas 无服务器实例就需要先创建一些数据库访问规则和网络访问规则。
我们先来添加一个新数据库用户。
选择对您来说最合理的身份验证类型。为了使本教程简单明了我建议选择“密码”选项。
涉及到用户权限时您当然可以使用“内置角色”但对于任意应用程序最好还是根据应允许用户执行的操作来定义“特定权限”。在这个项目中我们将使用一个“示例”数据库和一个“人员”集合因此只授予该数据库和集合 readWrite 访问权限才是合理做法。
在创建用户及定义访问权限时请运用自己的最佳判断力。
创建用户后我们就可以处理网络访问的相关内容。完成最后这一步后我们就能够以数据库为参照开始开发工作。
在“网络访问”选项卡中添加应允许访问的 IP 地址。如果您像我一样在本地开发和测试只需添加您的本地 IP 地址即可。请务必记得在必要时为您的服务器或云供应商添加 IP 范围。如果需要您还可以使用专用网络。
数据库和网络访问的设置已经完成我们现在应获取将在本教程下一步中使用的 URI 字符串。
在“数据库”选项卡中单击无服务器实例对应的“连接”按钮。
选择要使用的编程语言并记下 URI。
使用热门编程技术与 Atlas 无服务器实例交互
到这里您应该已经部署了 Atlas 无服务器实例。我们会花一点时间利用应用程序代码来连接实例并进行一些交互例如基本的 CRUD。
对于此特定示例我们将搭配使用 JavaScript 与 MongoDB Node.js 驱动程序但相同的规则和概念会继续应用只是与您希望使用的编程语言存在语言差异。
在本地计算机上创建项目目录并使用命令行导航到该目录。在它成为您的工作目录后您就需要执行以下命令 通过上面的命令我们完成 Node.js 项目初始化安装了 MongoDB Node.js 驱动程序并创建了一个包含我们的代码的 main.js 文件。
打开 main.js 文件并添加以下 JavaScript 代码 那么上面的代码发生了什么
首先我们会使用无服务器实例的 URI 字符串来定义客户端。这个字符串与您在本教程前面记录的字符串相同其应该包含用户名和密码。
在客户端中我们可以建立连接并获得对要使用之数据库和集合的引用。在运行应用程序之前数据库和集合不需要存在。
接下来我们将使用 MongoDB 查询 API 执行三种不同的操作。首先向我们的集合插入一个新文档。插入完成后在 try/catch 块没有发现错误的情况下我们会找到姓氏匹配的所有文档。对于此示例应该只有一个文档但您完全没法知道您的代码是什么样子。如果找到一个文档它就会被打印到控制台。最后我们将删除姓氏匹配的任何文档。
最后若您跟着我的示例执行所有步骤那么您的集合中不应该存在任何文档。然而您的集合中在某个时间点确实存在过一个文档只不过我们将它删除了。
我们通过一个基本示例了解了如何围绕按需数据库构建应用程序但这个示例并没有真正凸显出如此操作的好处。怎么改变这个情况呢
使用合理的应用场景推送Atlas 无服务器实例
我们知道预先配置和无服务器集群能够稳定运作。从开发的角度来看使用相同的代码最终会得到相同的结果。
让我们来设想一个场景Atlas 中的无服务器实例可以降低开发成本、减少扩展负担以满足需求。假设您有一个不是常规类型的网上商店。这家网上商店大部分时间的客流量都很少但由于您主营闪电式交易每周五上午 9 点到中午 12 点之间的客流量会激增 1000%。
我就不赘述较低的客流量但 1000% 的流量增长不容小觑很可能需要每周五对预先配置的集群进行某种扩展干预才行。否则您就需要付费使用更大型的数据库。
让我们使用下面的 Node.js 代码具象化这个示例
在上面的示例中我们采用了由 Express 框架提供技术支持的 Web 应用程序其中有两个端点函数。一个端点用于获得交易另一个端点则用于创建购买。其余内容请自行想象。
要对流量会突发的这款应用程序执行负载测试并模拟无服务器实例的潜在价值我们可以使用 Apache JMeter 等类似工具。
使用 JMeter 后您可以定义它在发出 HTTP 请求时使用的线程数和迭代次数。
请记住我们在此示例中模拟的是一种突发情况。如果您确实决定要尝试 JMeter且面对突发情况时过度操作您收到的帐单或许会让您哭笑不得。如果您有兴趣了解无服务器的计费方式请查看文档中的定价页面。
在 JMeter 线程组中您需要定义每个线程或迭代所发生的活动。在本例中我们向 Node.js API 发送 HTTP 请求。
由于 API 需要 JSON我们可以定义请求的标头信息。
取得线程信息、HTTP 请求信息和标头信息后您就可以运行 JMeter最终会看到同时参照 Web 应用程序和数据库而推进的大量活动。
同样此示例的很多内容都会留给您自行想象因为要想看到无服务器实例的扩展优势您就需要开发过程中难以模拟的大量突发流量。无论如何这个示例应该能给您带来一些启发。
结论
从上面的示例可以看到利用 MongoDB Atlas 开发可以多么快速其还能为您免去亲自调整集群大小的负担。使用 MongoDB Atlas 无服务器实例后您的数据库能够适当扩展以满足应用程序需求且您只需为具体需求付费。这样就不必为不间断运行且大小并不合适的集群付费。它还能为您节省时间不必对集群进行大小调整。
无论您使用的是 Atlas 无服务器实例还是预先配置的共享或专用集群此示例中的代码都能发挥应有作用。