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
===================================
更多分享,请大家关注我的个人公众号:
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· AI 智能体引爆开源社区「GitHub 热点速览」
· 从HTTP原因短语缺失研究HTTP/2和HTTP/3的设计差异
· 三行代码完成国际化适配,妙~啊~