连接池概述

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

什么是连接池?

定义

连接池(Connection Pool)是由数据库驱动程序维护的一组已经打开且准备就绪的数据库连接的缓存。你的应用程序可以从连接池中无缝获取连接,执行操作,然后将连接返回到连接池中。连接池是线程安全的。

连接池的好处

连接池有助于减少应用程序延迟和创建新连接的次数。

连接池在启动时创建连接。应用程序不需要手动将连接返回到池中。相反,连接会自动返回到池中。

有些连接处于活动状态,有些连接处于非活动状态但可用。如果您的应用程序请求连接并且池中有可用连接,则不需要创建新连接。

创建和使用连接池

MongoClient使用驱动程序对象的实例

大多数驱动程序提供了一个类型为 MongoClient 的对象。

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

笔记

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

验证

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

分片集群连接池

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

连接池配置设置

要配置连接池,请设置选项:

  • 通过MongoDB URI
  • 在构建MongoClient实例时以编程方式,或者
  • 在应用程序框架的配置文件中。

设置

设置 描述
maxPoolSize 池中打开的最大连接数。当连接池达到最大连接数时,新连接会等待,直到达到 的值 waitQueueTimeoutMS默认: 100
minPoolSize 池中打开的最小连接数。的值minPoolSize必须小于 的值maxPoolSize默认0
connectTimeoutMS 大多数驱动程序默认为永不超时。某些版本的 Java 驱动程序(例如版本 3.7)默认为10.默认值: 0适用于大多数驱动程序。看你的司机 文档。
socketTimeoutMS TCP 连接超时之前等待的毫秒数。请勿用作防止长时间运行的socketTimeoutMS服务器操作的机制。设置较低的套接字超时可能会导致操作在服务器响应之前出错。默认值0,表示没有超时。看你的 司机文档。
maxIdleTimeMS 连接在被删除和关闭之前可以在池中保持空闲状态的最大毫秒数。默认:查看您的司机文档。
waitQueueTimeoutMS Can 线程等待连接变为可用的最大等待时间(以毫秒为单位)。值表示0没有限制。默认0. 看你的司机文档。
ShardingTaskExecutorPoolMinSize 每个 TaskExecutor 连接池可以向任何给定实例打开的最小出站连接数mongod默认1. 见 ShardingTaskExecutorPoolMinSize该参数仅适用于分片部署。
ShardingTaskExecutorPoolMinSizeForConfigServers 用于设置每个 TaskExecutor 连接池可以打开到配置服务器的最小出站连接数 ShardingTaskExecutorPoolMinSize可选覆盖当设置为:-1ShardingTaskExecutorPoolMinSize被使用。这是默认设置。大于 的整数值-1将覆盖 每个 TaskExecutor 连接池可以向配置服务器打开的最小出站连接数。该参数仅适用于分片部署。默认-16.0版本中的新内容
ShardingTaskExecutorPoolMaxSize 每个 TaskExecutor 连接池可以向任何给定实例打开的最大出站连接数mongod默认值:2 64 - 1。请参阅 ShardingTaskExecutorPoolMaxSize该参数仅适用于分片部署。
ShardingTaskExecutorPoolMaxSizeForConfigServers 用于设置每个 TaskExecutor 连接池可以打开到配置服务器的最大出站连接数 ShardingTaskExecutorPoolMaxSize可选覆盖当设置为:-1ShardingTaskExecutorPoolMaxSize被使用。这是默认设置。大于 的整数值-1会覆盖 每个 TaskExecutor 连接池可以向配置服务器打开的最大出站连接数。该参数仅适用于分片部署。默认-16.0版本中的新内容
Copyright © 上海锦木信息技术有限公司 all right reserved,powered by Gitbook文件修订时间: 2023-09-01 17:10:26

results matching ""

    No results matching ""