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