我正在使用datanucleus mongodb maven插件和「訪問平臺」將我的java應用程序連接到使用JPA的mongodb。無法連接到mongodb副本集
我跟着上http://docs.mongodb.org/manual/tutorial/deploy-replica-set/ 說明在Ubuntu的虛擬機,添加db1.mongo,db2.mongo和db3.mongo到主機上的客戶端虛擬機和主機鍵(Mac OS X)兩種文件。
我有一個簡單的java應用程序連接到服務器,(如http://www.datanucleus.org/products/accessplatform_3_0/mongodb/support.html所述)。
當我的應用程序連接到主(連接網址:mongodb:db1.mongo:27017/ops?replicaSet=rs0
)一切都工作得很好,但是當我添加了另外兩個MongoDB的對連接的URL,因此它成爲mongodb:db1.mongo:27017/ops?replicaSet=rs0,db2.mongo:27018,db3.mongo:27019
我得到異常:
com.mongodb.MongoException: can't find a master
at com.mongodb.DBTCPConnector.checkMaster(DBTCPConnector.java:503)
at com.mongodb.DBTCPConnector.innerCall(DBTCPConnector.java:236)
at com.mongodb.DBTCPConnector.call(DBTCPConnector.java:216)
...
我已經搜索了這個錯誤,但是我發現的關注使用localhost/127.0.0.1。我試圖通過在單獨的虛擬機上運行mongodb來緩解這種情況,並因此使用非本地IP,並將名稱添加到hosts文件中。
嘗試mongodb的主要目標是實現可用性,以便複製和故障轉移非常重要。在發生故障時節點之間的事務和一致性不是問題,我們也不擔心偶爾會丟失一兩次更新,所以mongodb看起來像使用JPA的好選擇(我完全厭倦了mysql :-)
在此先感謝您的幫助!