做MongoDB并发测试,报出上述错误。究其原因,是数据库连接数太少,资源耗尽。查看com.mongodb.MongoOptions源代码,其中有connectionsPerHost和threadsAllowedToBlockForConnectionMultiplier两个重要的属性。
connectionsPerHost:每个主机的连接数
threadsAllowedToBlockForConnectionMultiplier:线程队列数,它以上面connectionsPerHost值相乘的结果就是线程队列最大值。如果连接线程排满了队列就会抛出“Out of semaphores to get db”错误。
connectionsPerHost默认是10,threadsAllowedToBlockForConnectionMultiplier默认是5,也就是线程池有50个连接数可供使用。因此只要将这个属性的值加大就可以避免上述错误。
其它属性设置:
maxWaitTime:最大等待连接的线程阻塞时间
connectTimeout:连接超时的毫秒。0是默认和无限
socketTimeout:socket超时。0是默认和无限
autoConnectRetry:这个控制是否在一个连接时,系统会自动重试
官方api:
http://api.mongodb.org/java/2.0/com/mongodb/MongoOptions.html
http://www.mongodb.org/display/DOCS/Java+Driver+Concurrency
分享到:
相关推荐
MongoDB是一种流行的开源文档型数据库,以其高性能、高可扩展性和灵活性而闻名。在这个场景中,我们关注的是一个Java客户端,它被设计用于并发访问MongoDB数据库并进行性能测试。这个客户端涵盖了三个主要操作:查询...
MongoDB是一种流行的开源、分布式文档数据库,常被用于构建高性能、可扩展的应用程序。这个“mongodb-测试数据”压缩包显然包含了一些用于测试MongoDB功能的样例数据集,特别是针对增、删、改、查(CRUD)操作的学习...
MongoDB性能测试报告详细分析了在大数据量环境下,包括GridFS和组合索引在内的性能表现。通过对5亿数据级别的插入与查询进行测试,本报告旨在探讨不同索引配置、数据量、查询方式等因素对性能的影响。 首先,测试在...
MongoDB是一种流行的开源、文档型数据库,以其灵活性、高性能和可扩展性而受到广大开发者喜爱。作为NoSQL数据库的一种,它采用JSON格式的数据模型,支持动态schema,这使得数据存储和处理变得更加简单和灵活。...
- 这可能是测试用的MongoDB数据库名,或者是包含测试数据的文件或目录。在测试环境中,这样的数据库通常用来验证集群配置、查询性能、故障恢复等操作。 综合以上信息,这个“MongoDB集群测试代码”涉及到建立和...
《dbeaver21.1-enterprise-agent:连接MongoDB与NoSQL数据库的高效工具》 dbeaver21.1-enterprise-agent是一款强大的数据库管理工具,专为IT专业人士设计,尤其适用于处理NoSQL类型数据库,如MongoDB。在当今数据...
MongoDB连接池是解决数据库连接管理和复用的一种机制,旨在提高应用的并发能力,减少创建和销毁连接的开销,同时确保在高并发场景下的稳定性和响应速度。 标题“MongoDB连接池for Java”指的是在Java环境中,针对...
MongoDB是一款流行且功能强大的NoSQL数据库系统,以其灵活性、高性能和易扩展性而闻名。MongoDB数据库管理工具则是为了帮助用户更有效地管理和操作MongoDB数据库而设计的软件。MongoVUE是其中的一款常用工具,它提供...
MongoDB是一款流行且功能强大的NoSQL数据库系统,以其灵活性、高性能和易扩展性而闻名。在处理非结构化或半结构化数据时,MongoDB是一个非常理想的选择。然而,对于那些不太熟悉命令行操作或者想要更直观管理数据库...
MongoDB是一款分布式文档型数据库,近年来在IT行业中备受青睐,尤其在大数据处理和实时应用程序领域。作为NoSQL数据库的一种,它以JSON格式的文档作为数据存储单元,支持丰富的查询语句,提供了高可用性、可扩展性和...
MongoDB 是一个高性能、开源、无模式的文档型数据库,属于NoSQL数据库家族,它以其灵活性、可扩展性和高可用性在现代数据存储领域占据重要地位。MongoDB尤其适合处理大规模的数据,尤其对于那些需要快速读写、结构不...
MongoDB是一种流行的开源文档数据库系统,以其灵活性、可扩展性和高性能而受到开发者的青睐。在Java应用程序中,当处理大量并发请求时,有效地管理数据库连接是至关重要的。这就是MongoDB连接池的作用,它能帮助优化...
在MongoDB中,数据库是在使用时自动创建的。这意味着当第一次向某个数据库中插入数据时,如果该数据库还不存在,MongoDB将自动创建它。 - **使用`use`命令**:在MongoDB shell中,可以使用`use`命令来选择一个...
MongoDB数据库是一个可以建立多个数据库的数据库系统。默认数据库为"db",该数据库存储在data目录中。MongoDB的单个实例可以容纳多个独立的数据库,每一个都有自己的集合和权限,不同的数据库也放置在不同的文件中。...
MongoDB 分布式数据库集群配置详解 MongoDB 是一个流行的 NoSQL 数据库,它可以水平扩展以满足大规模应用的需求。在本文中,我们将详细介绍 MongoDB 分布式数据库集群的配置详解。 什么是 MongoDB 分布式数据库...
MongoDB作为非关系型数据库,是当前流行的NoSQL数据库之一,以其高性能、高可用性以及易扩展的特点,广泛应用于各种数据存储场景。本文档提供了如何在单机环境下安装和测试MongoDB的流程,尤其适合学生进行学习和...
随着NoSQL数据库越来越流行,MongoDB数据库作为NoSQL数据库中的领头羊,使用也越来越广泛。为此,FineReport V8.0版本提供了数据连接和数据集接口,可以通过开发一款可以连接和使用的MongoDB数据库的插件。
"Mina+Mongodb+Mybatis+数据库连接池实例" 这个标题表明,我们将讨论一个具体的项目实例,它结合了多种技术,包括Mina(一个用于构建高性能、高可用性的网络应用程序的Java框架)、MongoDB(一个流行的NoSQL数据库...
MongoDB是一种流行的开源、分布式文档型数据库,以其灵活性、高性能和可扩展性而备受开发者青睐。作为NoSQL数据库的一种,MongoDB不采用传统的表格和列式数据模型,而是使用键值对、文档、集合和数据库的结构来存储...