我在 2 个不同的位置(通过 VPN 连接)有 3 个成员 mongo 副本集。这是配置:
- 主数据中心 A
- slave1,优先级 1,数据中心 A
- slave2,优先级 0,数据中心 B
使用此配置,主 mongo 实例将始终位于数据中心 A 上(因为 mongo 从属 2 的优先级为 0)。
我有一个在数据中心 B 上运行的 java Web 应用程序。当我连接时,我为 mongo 驱动程序提供了 3 个 mongo 实例的 IP(如果有任何实例失败,请确保连接到一个实例)。
我想确保在 dataceneter B 中运行的 java 应用程序优先使用 slave2 实例(因为它们位于同一个数据中心)而不是其他 2 个实例(只要 slave2 启动),对于非一致的读取操作和运行)。
如果应用程序(在数据中心 B 中)在 slave2 启动并运行时使用 master 或 slave1 进行非一致的读取操作,这会浪费资源、带宽,顺便说一下,还会浪费金钱。
如何确保数据中心 B java 应用程序更喜欢 slave2 ?