使用阿里巴巴云的ApsaraDB for MongoDB创建电子商务移动应用的后端,AMP for E-commerce Mobile Application Part 2

在这个由三部分组成的教程中,我们将探索如何使用AMP创建一个完全功能的电子商务移动应用程序。

本博客是从英语版本翻译而来的。您可以在这里查看原始版本。我们使用了部分机器翻译。如果有翻译错误,请您指正,谢谢。

阿里巴巴云科技分享的作者是 Sai Sarath Chandra。

这篇博客文章是《AMP for E-Commerce 第1回》的延续。在进入关于Alibaba Cloud ApsaraDB for MongoDB的讨论之前,我将解释为什么选择它作为概念验证(POC)的后端。

关系型数据库和非关系型数据库

通常,数据库有两种类型。

    • リレーショナルデータベース

 

    非リレーショナルデータベース

在关系数据库中,需要准确了解要管理的数据是什么。需要对数据库进行建模,并创建与该数据模型对应的查询,然后进行抓取。一个非常受欢迎的典型关系数据库是MySQL。MySQL对许多组织来说是一种廉价的选择。关系数据库非常强大,但也有一定的限制。关系数据库不适合处理大量数据,也不适合满足变化的数据需求。

在数字时代,我们会看到一些无法准确表示数据的流动数据。数据模型会随着特定实体的变化而持续变化,这也促成了NoSQL数据模型的诞生。而MongoDB是当下非常受欢迎的一种NoSQL数据库。NoSQL如今在行业中非常热门。它主要适用于希望启动业务,但对数据并不了解的中小规模组织。NoSQL没有预定义的模式。作为开发者,如果选择NoSQL,你无需担心需要具备DBA专业知识来维护后端性能。

MongoDB的优点

在这里,我们将详细说明使用MongoDB相比关系型数据库如MySQL的好处。

MongoDB 是无模式的。

在关系型数据库中,需要在进行其他数据操作之前定义表的模式。在插入数据到表中时,需要确保数据符合表的模式。如果发现数据模型有所更改,需要修改整个表的模式或创建新表进行规范化。然而,在MongoDB中,数据存储在类似于JSON的结构中。

在关系型数据库中,数据由行组成的表具有,但在MongoDB中,数据是由文档组成的集合。典型的文档只不过是类似JSON的结构体。MongoDB的有趣之处在于,多个文档可以组成多个具有多个数据类型的字段。一开始使用MongoDB可能会有些困惑,但习惯后,可以享受其灵活性。

MongoDB的可靠性
在市场上流通的关系型数据库经过多年的研究和行业的采用实践,得到了大家的认可。而MongoDB也被T-Mobile、索尼、Surveymonkey、Foursquare、Invision等大型企业采用。

MongoDB在数据分割(分片和复制)方面非常容易扩展。

分片(Sharding)是将数据集分割到多个MongoDB服务器上的过程。选择用于数据集分割的字段,并将其称为分片键。根据这个分片键,数据将分布在多个服务器上。通过分片,可以实现MySQL难以实现的水平方向的扩展。

如果数据集变得非常庞大,索引无法保存在内存中,且应用程序的写入量很大,需要将写入分散到多个服务器上的情况下。

MongoDB支持内置的副本集群和自动故障转移。通过使用自动故障转移,可以在主数据库发生故障时自动设置为从数据库。MongoDB使用副本集群来创建数据的多个副本。每个副本集群成员可以在任何时间点扮演主或从的角色。默认情况下,读写操作在主副本中进行,然后被复制到从副本。

通过复制和分片技术,Mongo DB能够轻松进行扩展。

深層查询能力、安全性和开发者友好
MongoDB支持基于文档的查询语言来进行动态查询,并且与SQL几乎同样强大。传统数据库在面临SQL注入攻击时常常遇到困难,所以从安全性的角度来看,MongoDB更加安全。在MongoDB中,将变量数据存储在文档的名称中,因此受到注入攻击的可能性大大降低。

从开发人员的角度来看,MongoDB更加开发人员友好,拥有针对大多数主要语言编写的客户端,并且文档也十分完善。MongoDB的主要优点是基于JavaScript的查询语言更适合更多的Web开发人员。它可以更快地进行应用程序原型设计,缩短发布和构建时间。

阿里巴巴云的ApsaraDB for MongoDB

阿里巴巴云阿巴萨云 MongoDB 是一种安全可靠、可弹性扩展的云数据库服务。目前支持 ReplicaSet 和 Sharding 架构,并且可以在几个简单步骤内快速部署。使用阿里巴巴云阿巴萨云 MongoDB,可以获得以下优势:

高可靠性存儲
– 基於阿里巴巴云的Apsara分散文件系統和SSD高性能存儲來構建。
– 通過3節點的ReplicaSet架構確保數據的冗餘性。
– 通過定期自動備份確保高可靠性的數據存儲。

– 可弹性调整
– 支持ReplicaSet和Sharding的双重架构。
– ReplicaSet和Sharding节点可以根据需要升级或降级以扩展资源。
– 此外,Sharding实例的Mongos和分片数量可以随时进行扩展。

– 为了提供专业服务来增强安全性和资源的弹性,我们提供阿里云高级技术团队成员的服务。
– 代码团队负责管理性能、安全性和其他方面经过优化的内核。

只需一个选项:费效比
– 不需要预付费用或长期承诺,具有较高的费效比。
– 我们提供每月订阅或按需支付等灵活的付款选择。

ApsaraDB for MongoDB的详细信息

阿里巴巴云的ApsaraDB for MongoDB支持副本集架构和分片架构。默认情况下,它以副本集架构运行,最少需要3个节点,其中一个是主节点,另一个是从节点,其他节点处于隐藏状态。当系统由于某种原因选择从节点作为主节点,或者从节点不可用时,系统会切换到隐藏的数据库,并确保服务可用。

分片服务(shard)和配置服务(configserver)采用了稳定可靠的3节点副本集架构。

阿里巴巴云被认为在其所有产品上都采取了安全措施。ApsaraDB for MongoDB提供了内置的备份和恢复功能,可以防止数据丢失,并通过适当的运营来最大限度地降低成本。

阿帕斯拉数据库(ApsaraDB)为MongoDB提供了一个可视化的运维管理平台。您可以监控实例信息,如使用的CPU连接,并以可视化方式获取其他信息。通过可视化的IT管理平台,可以简化频繁且高风险的运维任务,例如实例的重新启动。同时,阿帕斯拉数据库还实现了一键数据恢复操作。此外,我们积极进行数据库内核版本管理的优化,以便快速修复问题,从而解脱您日常的版本管理工作。

电子商务店铺的后台系统

在这里,我们将创建一个实际的设置,用于电子商务商店的后端和网络。我们将逐步创建这样的架构。请参考下图。

image.png

这是阿里巴巴云推荐的用于访问MongoDB实例的架构。

首先,创建 Alibaba Cloud 的 ECS 实例,从而减轻通过多个 Linux 命令进行操作的繁琐性。然后创建 Windows VM,并从 ECS 实例访问 MongoDB。

如果您通过互联网连接,请使用下列的认证信息。

管理员

image.png

如果您正在使用远程桌面协议进行连接,应该会显示已连接的 Windows。

创建用于MongoDB服务的ApsaraDB

在这里,我们将在阿里巴巴云上创建ApsaraDB for MongoDB服务的后端数据库。您可以在控制台上选择“产品”→“ApsaraDB for MongoDB”进行操作。

请转到与ECS实例(新加坡)相同位置上创建实例的页面。点击创建实例。在这个演示中,我们正在创建一个“副本集实例”。

image.png

点击“创建实例”按钮后,将显示以下界面。如果下面的界面没有显示,请不要着急。默认情况下,将进入 Subscription (副本集) 并填写所有默认值。您需要切换到 Pay-As-You-Go (副本集) 模式,并选择连接的 VPC 模型。

image.png

可以在默认设置中自动输入VPCID和VSwitchID。如果配置中不存在VPCID/VSwitchID,则表示ECS实例或MongoDB实例与同一地区不匹配。请指定密码,并记住用于将来登录数据库时使用的密码。

image.png

如果正确执行了所有步骤,则应该在阿里巴巴云上激活MongoDB服务。可以看到以下实例正在“新加坡”区域运行。

image.png

点击实例ID后,将跳转到显示内部网络和公共IP连接协议的界面。在访问之前,需要点击“设置白名单以显示地址”,将ECS实例的IP地址添加到白名单中。

image.png

点击后,将在此处转到[ECS内网IP导入]。您需要点击此选项,以自动检测ECS实例的内网IP地址。

image.png

然后,将显示出内部网络连接的详细信息,将此详细信息用于内部网络连接。连接将使用连接字符串URI。在下一个教程中也将使用相同的连接。

image.png

下一步

使用简单的基于Express的Node API来查询数据库数据,并利用提供的开源模板在AMP网站上构建电子商务应用程序。整个集成将在下一个教程中完成,请务必查看一下。

阿里巴巴云拥有两个位于日本的数据中心,并拥有超过60个可用区域,是亚太地区最佳的云基础设施服务提供商(根据2019年Gartner报告)。如需了解更多有关阿里巴巴云的详细信息,请访问阿里巴巴云官方页面。

广告
将在 10 秒后关闭
bannerAds