我正在使用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 :-)
在此先感谢您的帮助!