这个问题真的很简单,几乎所有的事情都在标题中。
当我这样做的时候
MongoClient mc = new MongoClient();
我的程序挂起了大约10-15秒,没有任何明显的CPU或内存使用变化。
在此之后,对数据库的调用看起来就像想象中的那样快。我的程序在本地作为我的DB运行。
我的开发笔记本速度很快,所以这个问题不太可能是硬件相关的。
这是我第一次在java中使用MongoDB。在PHP中,数据库连接几乎是即时的,所以我猜这里应该是一样的!
下面是我的程序的输出
program start time : 1390057127744 // 0,000s
new mongojacktest // a small object I made for my tests
new MongoClient() // The output hangs here and if I comment this line I get errors
// but my entire program runs in 5ms or less
start time :1390057127745 // 0,001s
getDB(myTestDb)
start time :1390057127745 // 0,001s
getCollection - testCollection
start time :1390057127745 // 0,001s
print db collections :
firstCollection
system.indexes
program exit time : 1390057143987 // 16,242s WTF?
我是不是遗漏了什么或者这是正常的?
谢谢!
发布于 2014-01-19 03:10:43
我不能确定,但可能是它试图解析主机名,也许你的DNS很慢或无法访问。要测试(如果您在单个Mongo节点上运行)模式,请向其传递服务器的确切地址,即127.0.0.1
MongoClient mc = new MongoClient("127.0.0.1", 27017);
您可以执行的另一项尝试是禁用计算机上的IPv6协议。
https://stackoverflow.com/questions/21205883
复制相似问题