【发布时间】:2019-08-07 10:01:53
【问题描述】:
我们正在尝试使用 nodejs/mongo-native 驱动程序实施以下演示文稿(幻灯片 13-18)中概述的策略。
总结:
- 从 node.js 创建到 mongodb 的连接池。
- 对于租户的每个请求,从池中获取一个连接并“验证”它。使用经过身份验证的连接来处理请求。响应后,将连接返回到池中。
我能够创建一个到 mongodb 的连接池,而无需使用 mongo-native 驱动程序指定任何数据库,如下所示:
const client = new MongoClient('mongodb://localhost:27017', { useNewUrlParser: true, poolSize: 10 });
但是,为了获得一个 db 对象,我需要执行以下操作:
const db = client.db(dbName);
这是我想验证连接的地方,它是 AFAICS,此功能已从更新的 mongo 驱动程序、node.js 和 java 中弃用/删除。
根据演示,看起来这可能与旧版本的 Java 驱动程序有关。
我什至可以使用单个连接池并使用相同的连接对各个数据库的租户进行身份验证吗?
我们的替代方案是每个租户都有一个连接池,目前这对我们没有吸引力。
我们将不胜感激任何帮助,包括弃用/删除此功能的原因。
【问题讨论】:
标签: node.js mongodb connection-pooling multi-tenant node-mongodb-native