Docs 菜单
Docs 主页
/ /

连接池概述

本文档将介绍如何使用连接池管理应用程序和 MongoDB 实例之间的连接。

连接池是由 驱动程序维护的开放、随时可用的数据库连接的缓存。您的应用程序可从连接池中获取连接、执行操作,并将连接返回连接池。连接池具有线程安全性。

连接池可以降低应用程序延迟和新建连接的数量。连接池在启动时创建连接,连接会自动返回连接池 —— 应用程序无需手动返回连接。某些连接处于活动状态,某些连接处于可用状态。如果应用程序请求连接且连接池中有可用连接,则无需创建新连接。

大多数驱动程序都会提供 MongoClient 类型的对象。

每个应用程序使用一个 MongoClient 实例,除非该应用程序连接到许多单独的集群。每个 MongoClient 实例都管理创建 MongoClient 时指定的 MongoDB 集群或节点的连接池。MongoClient 对象在大多数驱动程序中都具有线程安全性。

注意

MongoClient 实例存储在应用程序可全球访问的位置。

要将连接池与 LDAP 结合使用,请参阅 LDAP 连接池行为

mongos 路由器为集群中的每个节点都设有连接池。分片集群内各个节点的连接可用性会影响延迟。操作必须等待连接成功建立。

您可以在这些位置指定连接池设置:

  • MongoDB URI

  • 应用程序的 MongoClient 实例

  • 应用程序框架的配置文件

设置
说明

大多数驱动程序默认为永不超时。某些版本的 Java 驱动程序(例如版本 3.7)默认为 10

默认: 0 (对大多数驱动程序而言)。请参阅驱动程序文档。

池可以同时建立的最大连接数。

maxConnecting 除了Rust 驱动程序之外的所有其他驱动程序都支持。

提高 maxConnecting 的值可以让客户端更快地与服务器建立连接,但会增加连接风暴的几率。如果 maxConnecting 的值太低,连接池可能会遇到严重的限制,并且客户端检查连接时尾延迟会增加。

默认: 2

连接在池中可保持空闲状态的最大毫秒数,在此时间过后,连接将被删除或关闭。

默认设置:请参阅驱动程序文档。

连接池中打开的最大连接数。当连接池达到最大连接数时,新连接会等待达到 waitQueueTimeoutMS 的值。

默认: 100

池中打开的最小连接数。minPoolSize 的值必须小于 maxPoolSize 的值。

默认值0

TCP 连接判定超时之前可等待的毫秒数。

不要socketTimeoutMS 作为防止服务器长时间运行的机制。

设置过短的套接字超时时间可能会导致操作在服务器响应之前因超时而报错。

默认值0,表示无超时。

线程可等待连接变为可用状态的最长时间(以毫秒为单位)。值为 0 表示没有限制。

默认值0

后退

性能

在此页面上