У меня есть реплика mongo из 3 членов, установленная в 2 разных местах (подключенных через VPN). Вот конфигурация:
- мастер, дата-центр А
- slave1, приоритет 1, центр обработки данных A
- slave2, приоритет 0, центр обработки данных B
С этой конфигурацией главный экземпляр mongo всегда будет находиться в центре обработки данных A (поскольку подчиненный mongo 2 имеет приоритет 0).
У меня есть веб-приложение java, которое работает в центре обработки данных B. Когда я подключаюсь, я даю драйверу mongo IP-адреса 3 экземпляров mongo (чтобы обязательно подключиться к одному экземпляру, если какой-либо из них не работает).
Я хочу убедиться, что java-приложение, работающее внутри центра обработки данных B, использует для несогласованных операций чтения приоритет экземпляра slave2 (поскольку они находятся в одном центре обработки данных), а не любого из двух других (пока slave2 работает и бег).
Если приложение (в центре обработки данных B) использует master или slave1 для несогласованных операций чтения, в то время как slave2 запущен и работает, это пустая трата ресурсов, полосы пропускания и, кстати, денег.
Как я могу гарантировать, что Java-приложение центра обработки данных B предпочтет slave2?