我有4台服务器,每台服务器托管一个网站和一个mongo副本集。
服务器1是主服务器。
服务器2是次要的,标签为:{location:'east'}
位于东海岸
我正在使用连接字符串连接到数据库:mongodb:// localhost:27017 /?replicaSet = rs&readPreference = nearest&readPreferenceTags = location:east
服务器3和4是次要的,没有标签。
我希望服务器2从它的本地数据库中读取,但是相反,它是从主数据库(或者我不能告诉它的另一个辅助数据库,但是绝对不是从其本地数据库中读取)中读取
如何告诉服务器2读取其自己的本地SECONDARY数据库?
答案 0 :(得分:0)
在连接字符串中包含readPreferenceTags
。请参阅online doc。
顺便说一句,除非副本集中的一个节点没有投票权,否则副本集中的节点数不应为偶数。
答案 1 :(得分:0)
解决方案:群集中的所有服务器都必须能够连接到群集中的所有其他服务器。
结果是,由于iptables中放置了一些规则,因此某些辅助服务器无法连接到其他辅助服务器。
一旦集群中的所有服务器都能相互连接,速度就会大大提高。