lihe55966 2016-09-14 05:36 采纳率: 0%
浏览 1487

mongodb连接集群的疑问

情况描述如下:
1、用集群连接方式创建mongodb连接
List seeds = new ArrayList<>();
for(String h : host_list){
ServerAddress sa = new ServerAddress(h,port);
seeds.add(sa);
}

MongoOptions opt = new MongoOptions();
opt.connectionsPerHost = poolSize;
opt.threadsAllowedToBlockForConnectionMultiplier = blockSize;
mg = new Mongo(seeds, opt);

2、其中一个ip是虚假的,为了测试集群连接方式能够正常工作。
3、验证登录
db_con.authenticate(user, password.toCharArray());

问题所在:
如果用debug模式,手动跟踪代码,在有ip无效的情况下,验证能正常通过,能进行下面的mongodb操作。
但是如果正常执行,验证不通过,会提示mongodb所操作的集合需要认证。如下
com.mongodb.MongoException: Rare case where master=null, probably all servers are down
at com.mongodb.DBTCPConnector$MyPort.get(DBTCPConnector.java:438)
at com.mongodb.DBTCPConnector.innerCall(DBTCPConnector.java:280)
at com.mongodb.DBTCPConnector.call(DBTCPConnector.java:257)
at com.mongodb.DBApiLayer$MyCollection.__find(DBApiLayer.java:310)
at com.mongodb.DBApiLayer$MyCollection.__find(DBApiLayer.java:295)
at com.mongodb.DBCursor._check(DBCursor.java:368)
at com.mongodb.DBCursor._hasNext(DBCursor.java:459)
at com.mongodb.DBCursor.hasNext(DBCursor.java:484)
at com.hw.jgpt.mongo.SimpleTest.main(SimpleTest.java:98)

如果在 mg = new Mongo(seeds, opt); 这句话之后加上休眠语句,会报错:
com.mongodb.MongoException: not authorized for query on ************************
at com.mongodb.MongoException.parse(MongoException.java:82)
at com.mongodb.DBApiLayer$MyCollection.__find(DBApiLayer.java:314)
at com.mongodb.DBApiLayer$MyCollection.__find(DBApiLayer.java:295)
at com.mongodb.DBCursor._check(DBCursor.java:368)
at com.mongodb.DBCursor._hasNext(DBCursor.java:459)
at com.mongodb.DBCursor.hasNext(DBCursor.java:484)
at com.hw.jgpt.mongo.SimpleTest.main(SimpleTest.java:98)

  • 写回答

1条回答 默认 最新

  • zqbnqsdsmd 2016-10-07 16:29
    关注
    评论

报告相同问题?

悬赏问题

  • ¥15 如何在scanpy上做差异基因和通路富集?
  • ¥20 关于#硬件工程#的问题,请各位专家解答!
  • ¥15 关于#matlab#的问题:期望的系统闭环传递函数为G(s)=wn^2/s^2+2¢wn+wn^2阻尼系数¢=0.707,使系统具有较小的超调量
  • ¥15 FLUENT如何实现在堆积颗粒的上表面加载高斯热源
  • ¥30 截图中的mathematics程序转换成matlab
  • ¥15 动力学代码报错,维度不匹配
  • ¥15 Power query添加列问题
  • ¥50 Kubernetes&Fission&Eleasticsearch
  • ¥15 報錯:Person is not mapped,如何解決?
  • ¥15 c++头文件不能识别CDialog