我设置了一个基于MongoDB的Java Web应用程序项目。该项目的DAO由MongoDB Java驱动程序实现;我没有使用Spring Data for MongoDB。
我遇到了性能问题。如果应用程序向数据库发送查询,则响应时间约为17毫秒。但如果我使用Jmeter - 嘲笑大约300个用户 - 90%Line的响应时间约为1300ms。响应时间是无法忍受的。我试图找到原因,但我不知道。
此外,还有MongoUri
字符串:
mongo.uri=mongodb://192.168.1.172:27017,192.168.1.172:22222,192.168.1.172:33333/?replicaSet=yyyy&maxPoolSize=100&ssl=false&readPreference=secondaryPreferred&connectTimeoutMS=10000&socketTimeoutMS=10000&safe=false&
该查询就像查询objectID
一样,如db.collection.find( { _id: xxxx } )
。另外,我在_id
上构建了索引。
mongo.xml
<bean id="uri" class="com.mongodb.MongoClientURI">
<constructor-arg value="${mongo.uri}"></constructor-arg>
</bean>
<bean id="mongoClient" class="com.mongodb.MongoClient">
<constructor-arg ref="uri"></constructor-arg>
</bean>
<bean id="mongoCollectionDao" class="com.xxx.api.domain.dao.impl.MongoCollectionDao" lazy-init="false">
<constructor-arg name="mongoClient" ref="mongoClient"></constructor-arg>
<constructor-arg name="mongoDatabaseName" value="${mongo.database}"></constructor-arg>
</bean>
有人能解释这里出了什么问题吗?