代码改变世界

MonogoDB 连接副本集

2024-12-02 19:29  abce  阅读(5)  评论(0编辑  收藏  举报

要连接到副本集,可以通过指定副本集成员的主机名(或 IP 地址)和端口号。

 

如果无法提供副本集中主机的完整列表,可以指定副本集中的一台或多台主机,并指示驱动程序通过以下方式之一执行自动发现:

· 将副本集的名称指定为 replicaSet 参数的值。

· 将 false 指定为 directConnection 参数的值。

· 在副本集中指定多个主机。

 

连接到副本集:

mongodb://mongodb0.example.com:27017,mongodb1.example.com:27017,mongodb2.example.com:27017/?replicaSet=myRepl

 

 

连接到开启访问控制的副本集:

mongodb://myDBReader:D1fficultP%40ssw0rd@mongodb0.example.com:27017,mongodb1.example.com:27017,mongodb2.example.com:27017/?authSource=admin&replicaSet=myRepl

 

如果用户名、密码中包含以下特殊字符:

: / ? # [ ] @

 

需要使用百分号编码。

 

 

连接选项是通过 name=value 的形式配置的。使用驱动的时候,name 是大小写不敏感的;使用 mongosh 的时候,name 是大小写敏感的。而 value 始终是大小写敏感的。

 

写关注选项

可以在连接字符串中指定子关注选项,也可以作为方法的参数执行写关注选项,比如insert、update 选项。如果两个地方都做了配置,方法中的配置会覆盖连接字符串中的设置。

例如:

mongodb://db0.example.com,db1.example.com,db2.example.com/?replicaSet=myRepl&w=majority&wtimeoutMS=5000

 

readConcern 选项

对于 WiredTiger 存储引擎,MongoDB 3.2 为副本集和副本集分片引入了 readConcern 选项。读关注允许客户选择从副本集读取的隔离级别。

以下指向副本集的连接字符串指定了readConcernLevel=majority :

mongodb://db0.example.com,db1.example.com,db2.example.com/?replicaSet=myRepl&readConcernLevel=majority

 

读首选项

读首选项描述了读复制集操作的行为。通过这些参数,可以在连接字符串中按连接指定读取首选项。

比如,优先从辅助节点读

mongodb://db0.example.com,db1.example.com,db2.example.com/?replicaSet=myRepl&readPreference=secondary&maxStalenessSeconds=120

 

readPreference 参数的可选值:primary (Default)、primaryPreferred、secondary、secondaryPreferred、nearest