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开始都是额外的配置)

  1. Server: 指定 MongoDB 服务器的地址和端口号,可以是单个主机名或 IP 地址,也可以是多个用逗号分隔的主机名或 IP 地址。

  2. Database: 指定连接的数据库名称。

  3. Username: 指定连接的用户名。

  4. Password: 指定连接的密码。

  5. ReplicaSet: 指定复制集名称。

  6. ReadPreference: 指定读取数据时的偏好设置,可以是Primary(默认,从主节点读取数据)、Secondary(从节点读取数据)、PrimaryPreferred(优先从主节点读取数据,如果主节点不可用则从节点读取数据)、SecondaryPreferred(优先从节点读取数据,如果从节点不可用则从主节点读取数据)、Nearest(从最近的节点读取数据)。

  7. WriteConcern: 指定写入数据时的确认级别,可以是1(默认,写入到主节点并等待确认)、Majority(写入到大多数节点并等待确认)、MajorityAndPersisted(写入到大多数节点并等待确认,并持久化到磁盘)。

  8. ConnectTimeout: 指定连接超时时间,单位为毫秒,默认为30,000毫秒。

  9. SocketTimeout: 指定套接字超时时间,单位为毫秒,默认为30,000毫秒。

  10. MaxConnectionIdleTime: 指定连接最大空闲时间,单位为毫秒,默认为10,000毫秒。

  11. MaxConnectionLifeTime: 指定连接最大生命周期,单位为毫秒,默认为30,000毫秒。

  12. MaxConnectionPoolSize: 指定连接池最大连接数,默认为100

  13. MinConnectionPoolSize: 指定连接池最小连接数,默认为0

  14. WaitQueueSize: 指定等待队列大小,默认为500

  15. WaitQueueTimeout: 指定等待队列超时时间,单位为毫秒,默认为2,00毫秒。

  16. Ssl: 指定是否使用 SSL 加密连接,默认为false

  17. SslVerifyCertificate: 指定是否验证 SSL 证书,默认为true

  18. UseTls: 指定是否使用 TLS 加密连接,默认为false

  19. AuthMechanism: 指定认证机制,可以是SCRAM-SHA-1MONGODB-X509PLAINGSSAPI等。

  20. AuthMechanismProperties: 指定认证机制的属性,如CANONICALIZE_HOST_NAME=trueSERVICE_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

 

===================================

更多分享,请大家关注我的个人公众号:



posted @ 2023-04-17 10:19  黄明辉  阅读(195)  评论(0编辑  收藏  举报