固定链接 在滴滴云上搭建 MongoDB 集群 (一)

在滴滴云上搭建 MongoDB 集群 (一)

在滴滴云上搭建 MongoDB 集群 (一)

1、准备工作

之前已经介绍过了 MongoDB 在滴滴云上的搭建。参考:<<在滴滴云 DC2 云服务器上搭建 MongoDB 实战>>

但是生产环境中,通常需要更高的稳定性要求,单机版的 MongoDB 服务器并不能满足,因此我们需要高可用的 MongoDB 集群。

硬件准备

本次只是模拟集群的搭建。因此直接采用上一次的搭建环境,通过不同的端口模拟集群。

2、简介

MongoDB 的集群搭建方式主要有三种方式:Master-Slave,Replica Sets,Sharding。

其中 Master-Slave 官方已不再支持,故本文不再介绍。 本文主要介绍 Replica Sets 方式搭建高可用集群。

2.1 Replica Sets

2.1.1 介绍

副本集是一组维护相同数据集的 Mongod 实例。副本集包含多个数据承载节点和一个仲裁节点(可选),在数据承载节点中,一个且只有一个成员被视为主节点,而其他节点则被视为辅助节点。

主节点接收所有写入操作,一个副本集只能有一个主实例能够写入,主节点记录所有变更到它的 oplog。

辅助节点复制主节点的 oplog 并将操作应用于数据集。

也可以将一个额外的实例作为仲裁者添加到副本集。仲裁员不维护数据集,仲裁器的目的是通过响应其他副本集成员的心跳和选择请求来维护副本集中的仲裁。因为它们不存储数据集,所以仲裁器是提供副本集仲裁功能的一种好方法。

与具有数据集的完全功能副本集成员相比,仲裁器的资源成本更低,如果副本集的成员数为偶数,则添加一个仲裁器以在初选中获得多数票。

当一个主服务器在超过配置的周期(默认为 10 秒)内未与该组的其他成员通信时,符合条件的辅助服务器将要求选择将其自身指定为新的主服务器。集群试图完成新的初选并恢复正常操作。

2.1.2 搭建过程

登录之前搭建单机服务的机器,并切换到 root 账户:

创建配置文件:

文件内容如下:

文件内容如下:

文件内容如下:

根据配置文件创建对应的目录:

启动对应的服务:

见到如下输出即为启动成功

使用 MongoDB shell 连接服务:

查看副本集的配置情况:

此时我们还未配置副本集应显示如下:

使用命令rs.initiate()来启动一个新的副本集:

显示如下:

使用命令rs.add(“HOST_NAME:PORT”)添加副本集成员:

显示如下:

显示如下:

再次执行:

此时我们还未配置副本集应显示如下:

执行 db.isMaster() 查看是否为主节点:

发现本身 27017 端口已经设置为了主节点:

2.1.3 验证效果

连接主实例:

查看主状态:

显示如下:

写入数据:

读取数据:

显示如下:

再开一个窗口连接副本实例:

查看主状态:

显示如下:

模拟主实例故障 ( kill 进程) :

查看副本实例的状态(此处会有几秒的延迟,多执行几次查看效果):

如发现如下显示,再执行几次,直到 ismaster 变为 true:

即:

读取刚才写入的数据:

显示如下:

验证成功。

本文作者:刘燚

您的留言将激励我们越做越好