gpt4 book ai didi

java - Mongo 副本集 - 客户端是否需要了解所有这些?

转载 作者:行者123 更新时间:2023-12-02 03:56:16 26 4
gpt4 key购买 nike

我们使用 4 个成员和一个仲裁者的 mongo 副本集。有3个物理站点,所有mongo服务器都可以相互通信:

Site 1 (west coast) site1-mg01 site1-mg02

Site 2 (east coast) site2-mg03 site2-mg04

Site 3 (cloud, arbiter only) site3-mgarbiter

我们有一个 Java 客户端。我希望客户端永远不要连接到另一个站点中的 Mongo 服务器,即使其中一个服务器成为主服务器(滞后会杀死应用程序。)或者换一种方式

Site 1 Java App connects to site1-mg01 and site1-mg02

Site 2 JavaApp connects to site2-mg03 and site2-mg04

客户端仅了解副本集的一部分是否可以接受?因此,如果 Web 客户端实际上只能到达站点 1,并且我按如下方式设置副本集:

"site1-mg01:270xx,site1-mg02:270xx"

我的客户会受到负面影响吗?我认为它的工作方式是,只要其中一台服务器是主服务器,它就能正常连接吗?如果站点 2 Mongo 成为主站点,我就无法连接?

最佳答案

在 Mongo 中,所有写入都会写入主数据库。如果您的客户端是“只读”的,您可以在查询中使用“最近”的读取首选项。另一种选择是连接到非主节点并设置 rs.slaveOk 以允许客户端读取。 https://docs.mongodb.org/v3.0/reference/method/rs.slaveOk/

希望有帮助。

关于java - Mongo 副本集 - 客户端是否需要了解所有这些?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35416795/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com