2013-06-18 29 views
0

我們已經使用服務器的本地IP配置了MongoDB Replica Set。使用ReplicaSet覆蓋ip

config = {_id: 'Prod', members: [ {_id: 0, host: '10.10.194.22:27017'}, {_id: 1, host: '10.10.194.23:27017'}, {_id: 2, host: '10.10.194.24:27017'}, {_id: 3, host: '10.10.194.25:27017', arbiterOnly: true}] };

它的工作對我來說絕對沒問題。當我們試圖從Eclips填充數據時,問題就開始了。

我們正在使用公共IP連接數據庫,我們已經使用Mongo-Explorer測試了連接。

在填充數據時,它試圖連接到引發錯誤「連接超時」的服務器&的本地IP。

-Tarak

回答

0

如果您連接到MongoDB中的一個節點,客戶端驅動程序將與您指定的地址連接。

但是,如果您作爲副本集連接到MongoDB,客戶端驅動程序將向服務器請求副本集配置,然後在配置中使用主機名或IP地址。如果使用這些主機名或IP地址無法從客戶端訪問數據庫服務器節點,則它將無法工作。

如果您使用的是Java,區別在於您用於Mongo對象的構造函數。如果您使用List contstructor之一,即使列表中只有一個對象,它也將作爲副本集進行連接,因此它不適用於您。其他司機有類似的機制,但你沒有提到你正在使用哪個驅動程序。

但是,如果您連接到副本集的一個節點作爲單個節點,這應該工作。我不會說這是建議,但它應該工作。

+0

謝謝John,它工作... –