我們使用一個4個成員的mongo副本集,以及一個仲裁器。有3個物理站點,所有蒙戈服務器可以互相交談:Mongo副本集 - 客戶需要了解所有這些嗎?
網站1(西海岸)site1的-MG01 site1的-MG02
網站2(東海岸)站點2-mg03站點2-MG04
網站3(雲,仲裁者只)site3-mgarbiter
我們有一個Java客戶端。我寧願客戶端永遠不會連接到服務器蒙戈在其他網站,即使他們的一臺服務器變成主(滯後會終止該應用。)或者把不同的方式
網站1 Java應用程序所連接到site1的-MG01和site1的-MG02
網站2 JavaApp連接到站點2-mg03和站點2-MG04
是可以接受的客戶端只知道一個副本集的一部分?因此,如果Web客戶端可以實際只能達到現場1,我建立了我的副本設置如下:
請問「site1的-MG01:270xx,site1的-MG02:270xx」
我的客戶受到負面影響?我認爲它的工作方式,只要這些服務器之一是主要的,它會連接好嗎?如果一個Site 2 Mongo成爲主要的,我就不能連接?
感謝您的反饋意見。偏好標籤聽起來很有希望,但他們可以說不要與網站2交談?我嘗試了我的設置,並按照您的建議發現了site2-mg03和site2-mg04,然後在無法與它們交談時拋出com.mongodb.MongoSocketOpenException。讀取你的鏈接,它聽起來不像標籤會停止連接? – javatestcase
@javatestcase如果沒有顯示代碼和rs配置,很難說出了什麼問題。如果您使用適當的標籤配置西海岸會員並正確設置了「ReadPreference」,它應該可以工作。我不知道你發現*的意思。應用程序總是可以訪問遠程站點,但是使用合適的TagSet進行讀取操作時,它應該從「本地」站點成員讀取數據。 –