之前在《从零搭建MongoDB Cluster分片集群》这篇文章中我详细讨论的如何一步一步地建立MongoDB Cluster集群。所有的服务都是通过命令行或者参数的方式配置启动。本文将记录如何使用配置文件的方式启动MongoDB分片节点、配置服务器和Mongos路由服务器。注意,以下各节点配置信息和前文中命令行启动的参数相对比会容易理解很多。
MongoDB分片节点配置文件
systemLog: destination: file #指定了日志存储的形式,通常设置为file logAppend: true #指定以追加模式记录日志 path: /data/logs/mongod-0.log #指定日志文件的路径 storage: dbPath: /data/db-0 #指定数据库存储文件的路径 journal: enabled: true wiredTiger: engineConfig: cacheSizeGB: 8 #指定mongodb存储引擎wiredTiger所能使用的缓存大小。此值默认为1和物理内存 * 50%中的较大值 processManagement: fork: true #指定进程以fork模式运行 net: port: 27017 #指定进程所开放的端口 bindIp: 0.0.0.0 #指定进程绑定的ip sharding: clusterRole: shardsvr #指定进程在分片集群中的角色,shard server应配置为shardsvr,config server应配置为configsvr archiveMovedChunks: true #指定据群在执行moveChunk操作时,将相关文档保存在moveChunk文件夹 replication: oplogSizeMB: 10240 #指定oplog的大小,若此值设置过小,可能会导致副本集中的Secondary不能正常复制Primary的数据 replSetName: rs0 #指定启动的mongod分片节点进程的副本集名称 secondaryIndexPrefetch: all #指定副本集成员在接受oplog之前是否加载索引到内存,none不加载; all加载所有; _id_only仅加载_id。
启动MongoDB分片节点服务
如果要在一台主机上启动三个不同分片的MongoDB节点,只需要修改日志文件路径、数据库存储文件路径、端口和副本集名称即可,并保存在三个不同的配置文件中。以下命令在一个主机上分别启动三个不同的分片节点:
./mongod --config mongo-shard1.conf ./mongod --config mongo-shard2.conf ./mongod --config mongo-shard3.conf
Config配置服务器配置文件
由于Config配置服务器也要求被配置为副本集的形式,所以其配置文件和分片节点的配置内容相似,个别字段需要修改。
systemLog: destination: file logAppend: true path: /data/logs/config.log #不同服务的日志文件地址不同 storage: dbPath: /data/config #不同服务的数据文件地址不同 journal: enabled: true wiredTiger: engineConfig: cacheSizeGB: 1 processManagement: fork: true net: port: 20000 #不同服务的端口不同 bindIp: 0.0.0.0 sharding: clusterRole: configsvr #不同服务在集群中的角色不同 archiveMovedChunks: true replication: oplogSizeMB: 10240 replSetName: conf #不同服务的副本集名称不同 secondaryIndexPrefetch: all
启动MongoDB Config配置服务器
./mongod --config mongo-config.conf
Mongos路由服务器配置文件
路由服务的配置文件和之前两个服务的配置文件有很大的不同。
sharding: configDB: conf/host1:20000,host2:20000,host3:20000 systemLog: destination: file logAppend: true path: /data/mongos.log net: port: 27016 bindIp: 0.0.0.0 processManagement: fork: true
启动Mongos路由服务器
./mongos --config mongos.conf
参考文档

扫码联系船长