`
jackleechina
  • 浏览: 587925 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类

mongo 长连接 短连接 和连接池

 
阅读更多
MongoDB1.3版本以上都通过MongoClient类进行连接,其策略默认就是长连接,而且无法修改。所以连接数其实取决于fpm的客户进程数。如果fpm量太大,必然会导致连接数过多的问题。如果你所有机器上一共有1000个fpm,那么就会创建1000个长连接,按mongodb服务端的策略,每个连接最低消耗1M内存,那这1G内存就没了。所以直接方案是每次使用完后进行close操作,这样不会让服务端需要保持大量的连接。而close函数也有一个坑,就是默认只关闭写连接(比如master或者replica sets的primary),如果要关闭全部连接,需要添加参数true即:$mongo->close(true)每次关闭连接的方案可以有效减少服务器的并发连接数,除非你的操作本身非常慢。但是同样也有它的问题,比如每次不能复用之前的tcp连接,需要重新进行连接,这样连接耗时会比较高,特别是用replica sets的时候,需要创建多个tcp连接。所以最终可能只有两个方案一是减小fpm的数量二是自建连接池,通过连接池将之个客户端的连接收敛成固定数量对MongoDB的连接。

PHP那边是推荐用的persistent connection, 而且也说了DB 那边那种不推荐使用pconnect 但对于mongo 不适用, Mongo 是strongly recommend 使用persistent connection.

http://www.zhihu.com/question/20012148



http://blog.sina.com.cn/s/blog_4b82753d0100w24w.html 长连接 短连接
分享到:
评论

相关推荐

    mongo设置连接池

    - **MongoDB对象本身就是连接池**: 根据官方文档的描述,MongoDB客户端类`Mongo`本身就代表了一个到数据库的连接池。这意味着你只需要创建一个`Mongo`对象实例即可管理所有与数据库的交互,即使是在多线程环境下也是...

    Mongodb连接池for java

    在标签中,“MongoDB”是数据库的名字,“Mongo连接池”指的是针对MongoDB数据库的连接池,“连接池”是数据库连接管理的一个通用概念,适用于各种数据库系统。 在压缩包“mongodb_pool”中,可能包含了以下内容: ...

    Mongodb连接池JAVA

    3. **监控和调整**:定期检查连接池的状态,根据应用负载动态调整连接池大小,防止资源过度消耗或连接耗尽。 4. **异常处理**:处理连接获取失败、超时等异常情况,确保应用的健壮性。 5. **关闭连接池**:在应用...

    koa-mongo, 用于koa的MongoDB中间件,支持连接池.zip

    koa-mongo, 用于koa的MongoDB中间件,支持连接池 koa-mongokoa是一个用于koa@2的mongodb中间件,支持连接池。NB: 如果使用了,则使用 koa-mongo@0.安装npm i koa-mongo --save用法app.use

    Mongo应用数据库连接

    例如,在Java中,你可以使用`MongoClientOptions`配置连接池大小: ```java MongoClientOptions options = MongoClientOptions.builder() .connectionsPerHost(100) .build(); MongoClient mongoClient = ...

    spring-mvc-mongo-monitor

    “mongo 连接池 监控 monitor”标签指出我们将探讨MongoDB连接池的监控,这涉及到如何管理和优化数据库的连接资源。在高并发的Web应用中,有效管理数据库连接池至关重要,因为它可以提高性能并防止资源耗尽。MongoDB...

    java实现mongodb的数据库连接池

    在本场景中,我们关注的是如何使用Java实现对MongoDB数据库的连接池,利用mongo-2.7.3.jar包来管理MongoDB的连接。MongoDB是一种NoSQL数据库,它支持JSON格式的数据存储,采用BSON(二进制JSON)作为内部存储格式,...

    java使用mogodb数据库连接池demo

    本示例是关于如何在Java应用中使用MongoDB数据库连接池,确保在高并发环境下数据库操作的稳定性和性能。我们将深入探讨连接池的概念、MongoDB的Java驱动程序以及如何实现安全验证。 首先,连接池是管理数据库连接的...

    mongo-java-driver最新jar.zip

    连接池相关选项配置 MongoClientOptions options=MongoClientOptions.builder() .connectionsPerHost(poolSize) .minConnectionsPerHost(minpoolsize) .maxConnectionIdleTime(maxidletimems) ....

    mongo-connection:mongo连接

    在实际项目中,为了更好的管理和重用,通常会创建一个MongoDB配置类或工具类,封装上述步骤,以提供连接池、异常处理等功能。例如,使用Apache Commons Pool2库实现连接池,可以提高性能并避免资源耗尽。 综上所述...

    koa-mongo:适用于Koa的MongoDB中间件,支持连接池

    Koa-Mongo koa-mongo是用于koa @ 2的mongodb中间件,支持连接池。安装npm i koa-mongo --save用法 app . use ( mongo ( { host : 'localhost' , port : 27017 , user : 'admin' , pass : '123456' , db : 'test' , ...

    mongoDB连接需要的jar包,支持jdk1.6

    在当前场景下,如果目标是连接到MongoDB服务器,那么使用`mongo-java-driver-3.2.2.jar`会更为合适,因为它提供了更好的功能和兼容性。 在实际项目中,将这些jar包添加到项目的类路径中是必要的,这样Java应用程序...

    java连接mongo所需的3个jar包

    3. **mongodb-driver-core**: 这是驱动程序的基础模块,包含了网络通信、认证、连接池等基础设施。即使你不直接使用异步API,这个包也是必需的,因为它为其他两个驱动提供了底层支持。 在Java项目中,将这三个jar包...

    Mongodb连接池、增删改查实例套装

    "Mongodb连接池、增删改查实例套装"是针对初学者的教程资源,旨在帮助他们掌握MongoDB的基础操作和最佳实践。以下是这些实例中可能涉及的关键知识点: 1. **MongoDB连接池**: - **连接池概念**:连接池是管理...

    mongo-driver

    这包括创建连接池,处理网络错误,并确保在使用后正确关闭连接。 2. **数据库和集合操作**:通过驱动,你可以创建、读取、更新和删除(CRUD)数据库中的数据。这涉及对数据库对象的实例化,以及对集合的增删改查...

    mongo-java-driver-3.0.rar

    同时,连接池的优化使得多线程环境下的并发访问更为高效。 其次,3.0版本加强了对异步操作的支持。Java驱动程序提供了异步API,允许开发者在不阻塞主线程的情况下执行数据库操作,这在处理大量并发请求时尤其有用。...

    mongodb的c++连接接口

    7. **性能优化**:C++ 驱动允许进行一些性能优化,比如批量操作、连接池管理、异步操作等,这有助于提高应用程序的整体性能。 8. **安全注意事项**:在实际应用中,确保正确处理用户输入,防止 SQL 注入攻击,并且...

    koa-pooled-mongo:Koa-pooled-mongo 是 koa 的 mongodb 中间件,支持连接池。 这个想法的灵感来自 Koa-mongo。 但是这个使用 co-mongo 而不是原生的 mongodb lib 来支持基于生成器的流量控制

    Koa-pooled-mongo 是 koa 的 mongodb 中间件,支持连接池。 这个想法的灵感来自 Koa-mongo。 但是这个使用 co-mongo 而不是原生的 mongodb lib 来支持基于生成器的流量控制。 随着时间的推移,还会添加一些辅助...

    开源项目-mongodb-mongo-go-driver.zip

    1. **连接管理**:驱动程序提供了连接池,用于管理到MongoDB服务器的连接,确保高效和可靠的通信。连接池可以根据需要自动扩展,以适应负载变化。 2. **认证和安全**:支持多种身份验证机制,如SCRAM-SHA-1和SCRAM-...

Global site tag (gtag.js) - Google Analytics