MongoDB集群配置选项详解
MongoDB的配置如下:
mongodb://<username>:<password>@<host1>:<port1>,<host2>:<port2>,...,<hostN>:<portN>/databaseName?replicaSet=<replicaSetName>
replicaSet :表示集群的名称,若不配置,则集群不起作用。只会一直从主节点操作数据。
其中:
username和password是数据库的登录名和密码。hostX和portX是副本集成员的地址和端口号,可以将多个副本集成员的地址和端口号用逗号分隔。databaseName是要连接的数据库名称。replicaSetName是副本集的名称。
示例代码如下:
var connStr = "mongodb://user:password@localhost:27017,localhost:27018/mydb?replicaSet=myReplSet";
var client = new MongoClient(connStr);
如果要做读写分离,可这么写
var mongoUrl = new MongoUrl("mongodb://localhost:27017,localhost:27018/mydb?replicaSet=myReplSet"); var settings = MongoClientSettings.FromUrl(mongoUrl); settings.ReadPreference = ReadPreference.SecondaryPreferred; //优先从子节点读取 settings.WriteConcern = WriteConcern.WMajority; //写操作优先从主节点操作 var client = new MongoClient(settings);
或者在配置中直接写
mongodb://user:password@localhost:27017,localhost:27018/mydb?replicaSet=myReplSet&[option对象]
optoin对象可配置的如下:
MongoDB.Driver 驱动中连接字符串配置选项包括:(从5开始都是额外的配置)
-
Server: 指定 MongoDB 服务器的地址和端口号,可以是单个主机名或 IP 地址,也可以是多个用逗号分隔的主机名或 IP 地址。 -
Database: 指定连接的数据库名称。 -
Username: 指定连接的用户名。 -
Password: 指定连接的密码。 -
ReplicaSet: 指定复制集名称。 -
ReadPreference: 指定读取数据时的偏好设置,可以是Primary(默认,从主节点读取数据)、Secondary(从节点读取数据)、PrimaryPreferred(优先从主节点读取数据,如果主节点不可用则从节点读取数据)、SecondaryPreferred(优先从节点读取数据,如果从节点不可用则从主节点读取数据)、Nearest(从最近的节点读取数据)。 -
WriteConcern: 指定写入数据时的确认级别,可以是1(默认,写入到主节点并等待确认)、Majority(写入到大多数节点并等待确认)、MajorityAndPersisted(写入到大多数节点并等待确认,并持久化到磁盘)。 -
ConnectTimeout: 指定连接超时时间,单位为毫秒,默认为30,000毫秒。 -
SocketTimeout: 指定套接字超时时间,单位为毫秒,默认为30,000毫秒。 -
MaxConnectionIdleTime: 指定连接最大空闲时间,单位为毫秒,默认为10,000毫秒。 -
MaxConnectionLifeTime: 指定连接最大生命周期,单位为毫秒,默认为30,000毫秒。 -
MaxConnectionPoolSize: 指定连接池最大连接数,默认为100。 -
MinConnectionPoolSize: 指定连接池最小连接数,默认为0。 -
WaitQueueSize: 指定等待队列大小,默认为500。 -
WaitQueueTimeout: 指定等待队列超时时间,单位为毫秒,默认为2,00毫秒。 -
Ssl: 指定是否使用 SSL 加密连接,默认为false。 -
SslVerifyCertificate: 指定是否验证 SSL 证书,默认为true。 -
UseTls: 指定是否使用 TLS 加密连接,默认为false。 -
AuthMechanism: 指定认证机制,可以是SCRAM-SHA-1、MONGODB-X509、PLAIN、GSSAPI等。 -
AuthMechanismProperties: 指定认证机制的属性,如CANONICALIZE_HOST_NAME=true、SERVICE_NAME=mongodb等。
完整如下:
mongodb://user:password@localhost:27017,localhost:27018,localhost:27019/mydb?replicaSet=myrs&readPreference=secondaryPreferred&writeConcern=majority&connectTimeoutMS=30000&socketTimeoutMS=30000&maxIdleTimeMS=10000&maxLifeTimeMS=30000&maxPoolSize=100&minPoolSize=0&waitQueueSize=500&waitQueueTimeoutMS=2000&ssl=true&sslVerifyCertificate=true&tls=false&authMechanism=SCRAM-SHA-1&authMechanismProperties=CANONICALIZE_HOST_NAME=true,SERVICE_NAME=mongodb
===================================
更多分享,请大家关注我的个人公众号:


浙公网安备 33010602011771号