繁体   English   中英

带有MongoDB的RESTful API云架构

[英]RESTful APIs Cloud Architecture with MongoDB

我想与您分享过去几周我要解决的架构问题。

我必须设计一个平台,该平台公开一个REST API,该API将被移动应用程序和网站使用

到目前为止,一切都很简单。 现在来了我还没有整理好的复杂部分。 目前,让我们忘记前端,而专注于后端部分,请考虑以下要求:

  1. 该平台将使用MongoDB (我已经测试了其他NoSQL数据库,但目前这是唯一具有我需要的所有功能的数据库)
  2. 必须具有超强的可扩展性 ,才能为数千名用户提供服务
  3. 必须至少通过Facebook和Google允许oAUTH身份验证

我已经使用各种技术进行了各种测试,但是我还无法确定哪种软件是实现目标的最佳软件堆栈(或云提供商):

第一次尝试
最初,我开始探索Firebase(满足第2点和第3点的要求),但是有以下限制:

  • Firestore不提供地理空间功能
  • 虽然有Firebase-CLI,但我认为它不是很有用,并且减慢了开发速度,尽管它是基于NodeJ的,因为它不允许每次修改都重新启动应用程序,并且调试很复杂,最多只能完成一次。一次功能 此外,似乎本地Firebase模拟器无法复制云版本的某些功能

第二次尝试
然后,我搬到了Mongo Stitch ,即使在这里,问题也大致相同:可以在本地进行开发,但是(如果我没有误解这个文档 )进行测试,则有必要在云上部署代码。 如果这是真的,那么这是不可用的方法,因为它会大大减慢开发速度,并且不允许团队合作。 此外,MongoDB Cloud平台不提供静态资源托管。 这不是一个严重的问题,但是如果有,那会更好

第三次尝试
我正在尝试使用NodeJS(与Express和Mongoose一起)来建立一个环境,使您可以在本地 快速进行开发测试 但是现在我必须了解如何将其带到云上。 我想尝试一种混合方法,该方法可以将开发速度与云系统的功能和功能结合在一起(可能是Firebase,因为最终它是最复杂的平台):我想尝试开发所有东西在本地,将业务和数据访问组件隔离在单独的js库中。 然后,当我在本地工作时,我会将一条快速路线映射到业务功能; 相同的业务功能将映射到相关的Firebase功能上。 有人尝试过这种工作方式吗?

我正在考虑的另一件事是将运行时分别部署在两个不同的云中。 会有性能问题吗? 或这些云服务的性能如此之差以至于可以忽略不计。 考虑到这一点,将有两个远程处理级别:

AppMobile ===> REST服务器(Firebase)===> MongoDb(Mongo Atlas)

你怎么看待这件事? 任何意见或经验将不胜感激。 如果需要澄清,请提前告知我

根据您对可伸缩性,MongoDB依赖关系和OAuth的要求,最好的堆栈之一是使用Node.js和MongoDB。 Node.js具有超强的可扩展性,并具有与MongoDB进行通信的库。 您可以在本地进行开发并将其推送到云中。 另一种选择是使用Node.js(用于前端和OAuth)并使用中间层Java应用程序(例如Spring Boot)与MongoDB(作为数据库)一起服务于ReSTful调用。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM