65.9K
CodeProject 正在变化。 阅读更多。
Home

使用 ApsaraDB 构建可扩展的 MongoDB 实例

starIconstarIconstarIconstarIconstarIcon

5.00/5 (1投票)

2018年1月9日

CPOL

5分钟阅读

viewsIcon

5021

在本文中,我们将探讨使用阿里云的 ApsaraDB for MongoDB 服务,该服务使我们能够以简单但可扩展的方式设置 NoSQL 数据库。

阿里云 提供全面的全球云计算服务套件,助力您的业务发展。 立即创建账户,即可获得 300 美元的免费新用户积分


MongoDB 是非 SQL (NoSQL) 数据库领域的一颗明星。它是一个经过验证的解决方案,具有一些有趣的用例(通常需要做好扩展准备,因为需要在短时间内处理大量数据)。

在本文中,我们将探讨使用阿里云的 ApsaraDB for MongoDB 服务,该服务使我们能够以简单但可扩展的方式设置 NoSQL 数据库。

MongoDB 背景

MongoDB 于 2009 年首次发布,并因其数据组织方式而迅速获得发展动力。MongoDB 不使用常见的关系模型,而是使用基于 JSON(JavaScript 对象表示法)的表示法在文档中组织数据,这为开发人员带来了新的功能,并提高了开发速度。用户查询 NoSQL 数据库内数据的方式与结构化查询语言 (SQL) 不同。聚合、复制和高可用性的实现方式与通常的关系模型略有不同。

MongoDB 适用于多种用例,例如基于位置的移动应用程序,而阿里云 ApsaraDB for MongoDB 提供的异步数据写入功能使其成为物联网 (IoT) 应用程序的绝佳工具,因为它表现得像内存数据库,非常适合高写入场景。MongoDB 索引和 MapReduce 聚合对于多维数据分析非常有用。

对于写入密集型应用程序,单个 MongoDB 实例通常是不够的。因此,通过运行数据库集群来提高服务的可用性是一个好主意。它使所有 MongoDB 实例共享一个公共接口,但分担了客户端服务的负载。

为云做好准备的数据库

运行数据库集群是一项复杂的任务。通常公司里有专门的角色(更好说是一个专门的团队)负责处理此事。您需要管理无数重要的细节和大量的子任务,才能提供可靠、可扩展且速度极快的服务。幸运的是,像阿里云这样的公司提供此类服务,并且无需专家即可轻松地从零开始配置一个不错的集群。

ApsaraDB for MongoDB 允许您配置三个 MongoDB 实例组成的组,称为副本集(主实例、次实例和一个隐藏的次实例)。您可以创建任意数量的副本集,但有一些辅助系统可用于改进集群的管理任务。

  • 备份系统:可以配置 MongoDB 实例的备份,有多种选项,默认情况下,文件保留七 (7) 天。
  • 高可用性控制系统:检测副本集主实例的问题,并切换到次实例。
  • 日志收集:收集慢查询和实例的 RAM 条件,以便您调整应用程序的性能。
  • 监控系统:收集指标(您副本集运行状况的即时测量值),这对于在一段时间内了解集群的特定运行状况非常有用。
  • 在线迁移系统:在发生物理故障时,将数据从可用备份迁移到新实例。这样,您就可以实现高可用性级别。
  • 任务控制:允许您更改实例、备份等的配置参数。
  • ConfigServer:一个集群配置服务器(一个可选的 1 核 2 GB CPU 和 20 GB 存储空间的机器),允许集群管理员向您的集群添加 Mongo 或分片节点。

配置副本集时,您需要选择实例类型,其中包括核心数、RAM 大小、最大并发连接数以及每秒最大输入/输出操作数。阿里云 ApsaraDB for MongoDB 提供超过 20 个指标来监控性能,并保留数据一年。

实操

要开始使用 ApsaraDB for MongoDB,您需要在 阿里云 上创建一个账户。您可以利用他们目前为新用户提供的 300 美元积分。注册过程非常简单,因此我们在这里不详细介绍。我们将创建一个包含主节点、次节点和隐藏次节点的单个副本集。(ApsaraDB for MongoDB 还包含一个指南,用于正确 设置集群。)

现在,转到控制台,然后点击“ApsaraDB for MongoDB”。

点击“创建实例”按钮。

选择区域、可用区、数据库核心数、RAM 大小和存储选项。(请设置一个强大的初始密码。)然后点击“立即购买”按钮。

确认实例,几秒钟后,您将在控制台中看到它。

当您点击实例的“管理”链接时,您将进入副本集管理控制台。

我们可以通过任何弹性计算服务 (ECS) 服务器配置到实例的访问,因为这只是一个示例。(此设置风险极高,在您的其他项目设置中应避免。请阅读安全指南,并在配置实例之前与您的 IT 安全团队合作。)

现在,点击左侧面板上的“安全控制”链接,然后点击底部的“手动修改”按钮,在“127.0.0.1”和“0.0.0.0/0”(表示任何 IP 地址)后面添加一个逗号“,”。值之间不要留任何空格。

点击“确定”按钮,然后您的副本集就可以从任何 ECS 实例访问了。(同样,这风险极高,应尽可能避免。)您可以使用 MongoDB 客户端和管理控制台底部显示的参数来检查连接。

替代方案

MongoDB 部署在各种云中。作为关系数据库管理系统 (RDBMS) 的替代方案,阿里云 ApsaraDB 还支持另一种 NoSQL 数据库 Redis,它适用于另一种类型的用例,但通常也需要高可用性和弹性可伸缩性。如果您有兴趣进一步探索 NoSQL 世界,还有图数据库(Neo4j、ArangoDB)、面向列的数据库(Apache Kudu、Apache Parquet、InfiniDB)甚至混合型数据库。

最后的寄语

在阅读了一些文档和经过几个小时的工作后,使用阿里云 ApsaraDB for MongoDB 设置一个基本的 MongoDB 副本集非常简单。控制台和管理服务简单直观。能够通过几次点击设置一个真正的集群解决方案,同时保持与最常用的 NoSQL 引擎之一的兼容性,这很有吸引力,但还有一些地方需要改进,例如管理工具的本地化和书面文档。

© . All rights reserved.