Mongodb实验报告
- 实验目的
本次实验是使用三台机器搭建mongodb集群,从而了解掌握文档数据库的基本情况和mongodb数据库的使用。
- 实验环境
宿主机:Windows 10
虚拟环境:三台 centos 7
mongodb版本:2.6.7
- mongodb基本介绍
从图中可以看到有四个组件:mongos、config server、shard、replica set。
Mongos:数据库集群请求的入口,所有的请求都通过mongos进行协调,不需要在应用程序添加一个路由选择器,mongos自己就是一个请求分发中心,它负责把对应的数据请求请求转发到对应的shard服务器上。在生产环境通常有多mongos作为请求的入口,防止其中一个挂掉所有的mongodb请求都没有办法操作。
config server:顾名思义为配置服务器,存储所有数据库元信息(路由、分片)的配置。mongos本身没有物理存储分片服务器和数据路由信息,只是缓存在内存里,配置服务器则实际存储这些数据。mongos第一次启动或者关掉重启就会从 config server 加载配置信息,以后如果配置服务器信息变化会通知到所有的 mongos 更新自己的状态,这样 mongos 就能继续准确路由。在生产环境通常有多个 config server 配置服务器,因为它存储了分片路由的元数据,这个可不能丢失!就算挂掉其中一台,只要还有存货, mongodb集群就不会挂掉。
Shard:这就是传说中的分片了,分担单个节点的压力。
Replica set每一个分片构建 replica set 副本集保证分片的可靠性
- 实验及使用
4.1安装步骤
4.1.1 角色分配
4.1.2 时间同步
首先安装ntpdate,ntpdate采用的是直接强制修改时间,完全不考虑对其他程序的影响,在真正的集群管理中应道少用,可以是用ntpd服务。因为我采用的是虚拟机,没什么影响,所以可以使用。
输入以下命令yum install ntpdate -y
顺便也同步一下硬件时间:hwclock --systohc
4.1.3 下载并解压安装包
4.1.4 创建目录
在一台机器上,创建mongos config shard1 shard2 shard3五个目录,因为mongos不存储数据,只需建立日志文件目录。
4.1.5 划分端口
划5个组件对应的端口号,由于一个机器需要同时部署mongos, config server, shard1, shard2, shard3,所以需要用端口号进行区分。这个端口号可以自己定义,本次实验中使用的是:mongos:20000,config server:21