MongoDB集群架构及搭建
MongoDB分布式集群
MongDB分布式集群能够对数据进行备份,提高数据安全性,以及提高集群提高读写服务的能力和数据存储能力。主要通过副本集(replica)对数据进行备份,通过分片(sharding)对大的数据进行分割,分布式存储在不同节点上。
副本集(replica)
副本集由若干台服务器组成,分为三种角色:主服务器、副服务器、仲裁服务器。根据集群搭建的需求,仲裁服务器不是必需的。主服务器提供主要的对外读写的功能,副服务器作为备份。当主服务器不可用时,其余服务器根据投票选出一个新的主服务器,提供读写功能。因此,副本集可以提高集群的可用性。
分片(sharding)
分片主要是为减小高数据量和高吞吐量的数据库应用对单机性能造成的压力。将大的数据分片存储在不同节点上,外部读写只操作相应的一个或一小部分节点,一次减少每个分片节点村春的数据量和处理的请求数 。
MongoDB集群架构
其中每个分片是一个副本集,副本集的结构如下图
Mongo集群部署
注意:在生产环境中,配置服务器务必使用三个,而不是一个;每个分片节点都部署成副本集,而不是一个单独的Mongo服务器
配置文件
配置文件用于在启动mongod时加载配置,也可以使用该命令行启动项,不过配置项很多的时候,命令行参数很多。所以应该把配置项都写到配置文件中。每个节点都有一个配置文件。
配置文件主要包括以下配置项:
- dbpath = \ 指定数据的存放位置,必需项
- logpath = \ 指定日志的存放位置
- logappend = \ 日志以追加方式写入
- pidfilepath = \ 存放启动mongod是分配的进程号
- bind_ip = \ mongod监听的ip,可以不设置,不设置时,通过机器的ip访问
- port = \监听的端口号,务必设置,默认的端口不安全
- directoryperdb = \为每个数据库的数据分配一个存储目录,建议设置,数据更好管理
- journal=\ 启用恢复日志,如果mongod意外退出,下一次启动时会根据恢复日志进行恢复,但恢复日志所占空间比较大。建议设置true
- keyFile = \指