所在的位置: js >> js优势 >> 为云而生的MongoDBAtlas

为云而生的MongoDBAtlas

北京医院扁平疣 http://pf.39.net/bdfyy/bdfyw/210314/8744642.html

多年来,各大平台相继意识到,光靠基于SDK连接器的本地单一数据库,是难以构建出整套应用平台的。因此,我们往往需要面向未来的数据库即服务(Database-as-a-Service,DaaS),作为云原生的解决方案,通过API连接到各类用户端。与此同时,针对非SQL的数据库结构,我们创建并普及了NoSQL的相关概念。如今,市场上已有着许多基于NoSQL的数据库,其中包括:键值类、文档类、柱状、以及图形数据库等。虽然有CouchBase作为强有力的竞争对手,但是MongoDB仍然是目前文档类数据库领域的佼佼者。实际上,作为一个通用的、基于文档的分布式数据库,MongoDB就是专为云端应用而开发构建的。

就像JDBC连接器可以协助将Java程序连接到关系型数据库的RDBMS上一样,目前已有多种语言和框架,为MongoDB构建了开箱即用的连接器。例如,MEAN(MongoDB、Express、AngularJS、Node.js)或MERN(MongoDB、Express、ReactJS、Node.js)栈中的一个关键组件—Mongoose,便可以作为NodeJS中的一个模块,并能通过npm来获取。

在本文中,我们将重点讨论服务于分布式应用和云端数据库的MongoDBAtlas平台,并以实例的形式,了解它是如何协助开发者构建出云原生的且快捷的应用服务栈。

MongoDBAtlas的主要功能

1.它是一个基于云端的纯数据库,用户在线完成注册后,可以获得其大量服务。

2.由于Atlas支持基于纯API式的通信方式,因此消费者端可以通过多种身份验证和授权机制(如:基本的身份验证、oAuth2等),通过标准的REST接口,去调用数据库。

3.其GraphQL功能可以通过API进行查询。也就是说,用户可以通过从底层数据库架构自动生成架构,去轻松地为其端点设置API。

4.诸如NodeJS应用和Gatsby的JAMStack平台框架,都能够通过Atlas的连接器连接到MongoDB上。

5.它可以通过提供多种与管理相关的服务,来治理目标数据库。

6.它可以通过主、备服务器的方式,为集群提供多(跨)区域的可用性。

7、在保留了文档数据库核心能力的同时,它在云服务之上增加了一个核心应用服务层—Realm,并通过提供一个名为MongoDBStitch的框架,来集成多个消费者端(如:Web应用、fatprograms、以及其他云原生应用程序等)。它们都能够通过该层面连接到MongoDB上,并进行数据交换。

8.它通过被称为“触发器”的概念,提供基于事件的集成。也就是说,“触发器”可以通过触发事件,以传递给其他发布者和注册相同的消费者端。

9.它提供了一种无服务器的编程模型,可以使用Python、JavaScript等编码语言,将代码片段嵌入到“功能函数”中,并使其成为功能即服务(Function-As-A-Service,FaaS),以支持低代码模式(lowcodepattern)。

10.MongoDB可以通过电子邮件或短信的连接方式,与多个第三方(如,Twilio的本地连接器)进行通信。

11.它提供基于角色安全的数据库访问和管理。

12.它能够根据分析和报告目,去创建图表。

开发示例

在新冠疫情的当下,我们使用MongoDBAtlas进行开发,并使用Gatsby作为JAMStack平台,构建一个响应式的简单Web应用程序。它可以被用来搜索和显示诸如:医院病床、氧气瓶、政府联系电话、以及志愿者等重要信息。所有的数据都会以协作的方式被保存在GoogleSheet中。

作为一名Gatsby新手,为了避免开发中出现繁琐的页面和集成,我使用了GoogleAppScript和MongoDBAtlas,来轻松地选择和构建客户端和数据库应用。由于Atlas带有易于配置的集群、集合、以及拼接服务(stitchservice),因此GraphQL在MongoDB上设置和构建整个应用程序的效率,比为自定义应用去构建样板代码(boiler-platecode),要快得多。当然,您也可以使用诸如Lambda、DynamoDB、Cognito、GraphQLAPI之类的服务,在AWS平台上构建类似的应用。整个应用示例的逻辑,如下图所示。

下面是一些关键性的代码片段。

GoogleSheet的各种应用脚本

在GoogleSheet的“工具”菜单或客户端上,


转载请注明:http://www.aierlanlan.com/grrz/2958.html