在MongoDB的配置选项的文件列出了所有可以指定,但没有任何人有一组完全形成例如YAML格式的配置文件中各种角色的MongoDB实例的可用选项?
对于那些从头开始或希望测试最新配置文件格式的人来说,一组常见角色的示例将是一个非常有用的起点。
在MongoDB的配置选项的文件列出了所有可以指定,但没有任何人有一组完全形成例如YAML格式的配置文件中各种角色的MongoDB实例的可用选项?
对于那些从头开始或希望测试最新配置文件格式的人来说,一组常见角色的示例将是一个非常有用的起点。
Answers:
这是Linux 的YAML配置的几个示例(Windows路径和选项略有不同),本质上是显式设置一些默认值和常用设置。
首先,mongod
具有默认端口,路径,日志设置的独立服务器-这将是用于本地测试的配置类型,还有一些其他功能,因此请显示常规样式:
storage:
dbPath: "/data/db"
directoryPerDB: true
journal:
enabled: true
systemLog:
destination: file
path: "/data/db/mongodb.log"
logAppend: true
timeStampFormat: iso8601-utc
processManagement:
fork: true
net:
bindIp: 127.0.0.1
port: 27017
wireObjectCheck : false
unixDomainSocket:
enabled : true
关于此配置的一些注意事项:
wireObjectCheck: false
在生产中被选中(),但是对于大量数据进行测试而言,这样做会加快速度,并且在这种环境下风险最小现在,让我们看一个典型的生产副本集成员的示例配置文件,该成员已启用身份验证并作为分片群集的一部分运行:
storage:
dbPath: "/data/db"
directoryPerDB: true
journal:
enabled: true
systemLog:
destination: file
path: "/var/log/mongodb.log"
logAppend: true
timeStampFormat: iso8601-utc
replication:
oplogSizeMB: 10240
replSetName: "rs1"
processManagement:
fork: true
net:
bindIp: 192.0.2.1
port: 27018
security:
keyFile: "/data/key/rs1.key"
authorization: "enabled"
sharding:
clusterRole: "shardsvr"
有关此配置的一些说明:
接下来,是一个示例mongos
配置:
sharding:
configDB: "config1.example.net:27019,config2.example.net:27019,config3.example.net:27019"
autoSplit: true
systemLog:
destination: file
path: "/var/log/mongos.log"
processManagement:
fork: true
net:
port: 27017
bindIp: 192.0.2.2
maxIncomingConnections: 5000
security:
keyFile: "/data/key/mongos.key"
authorization: "enabled"
这里唯一需要的更改是不适用于的删除mongos
(因为它不存储数据)和configDB
字符串的添加,这在所有mongos
进程上都必须相同。我以最大连接数设置为例,这不是必需的,但对于较大的集群通常是个好主意。
围绕分片集群,我们有一个示例配置服务器,它实际上是副本集成员的一个子集,但有一些小的更改:
storage:
dbPath: "/data/db"
journal:
enabled: true
systemLog:
destination: file
path: "/var/log/mongodb.log"
logAppend: true
timeStampFormat: iso8601-utc
processManagement:
fork: true
net:
bindIp: 192.0.2.3
port: 27019
security:
keyFile: "/data/key/config.key"
authorization: "enabled"
sharding:
clusterRole: "configsvr"
最后,MongoDB 3.0(在撰写本文时尚未发布)将引入几个新选项,尤其是随着新存储引擎的引入。因此,这是一个如何配置相同副本集成员的示例,但是这次使用WiredTiger存储引擎和(默认)快照压缩方法(注意:由于SERVER-16266而从原始更改,并添加了sample engineConfig
):
storage:
dbPath: "/data/db"
engine: "wiredTiger"
wiredTiger:
engineConfig:
cacheSizeGB: 8
collectionConfig:
blockCompressor: snappy
systemLog:
destination: file
path: "/var/log/mongodb.log"
logAppend: true
timeStampFormat: iso8601-utc
replication:
oplogSizeMB: 10240
replSetName: "rs1"
processManagement:
fork: true
net:
bindIp: "192.0.2.1,127.0.0.1"
port: 27018
security:
keyFile: "/data/key/rs1.key"
authorization: "enabled"
sharding:
clusterRole: "shardsvr"
作为最后的奖励,我展示了如何使用列表(在本例中为外部IP和回送IP)绑定多个IP地址。