mongodb如何管理连接的?有必要实现连接池吗

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了mongodb如何管理连接的?有必要实现连接池吗相关的知识,希望对你有一定的参考价值。

要看你的具体应用了,如果不是高并发的在线服务,连接池也没必要;
连接池多数都是有各个语言的驱动来实现的
python的驱动实现了线程池,高并发时,问题不小,需要在程序层进行处理,
做法是包装一层解释器,进行重连,实现2、3000的并发,问题不大。
但根本还是尽可能好的设计,让它的操作尽可能的短。
参考技术A mongodb链接池的使用是有必要的。
mongodb链接池配置:
dbUrl = 'mongodb://'+configs.dbconfig.dbmongodbpublic.host+':'
+ configs.dbconfig.dbmongodbpublic.port.toString() +'/'+configs.dbconfig.dbmongodbpublic.dbname ;

var publicdbtoptions = db: ,
server: poolSize: 5 , auto_reconnect:true ,
replSet: ,
mongos:

;
// Initialize connection once
MongoClient.connect(dbUrl,publicdbtoptions ,function(err, database)
if(err) throw err;
dbs.publicdb = database ;
console.info(dbUrl + " open OK publicdb");
//
);本回答被提问者采纳
参考技术B 如果并发量大的话还是有必要使用持久化连接的。很多官方的驱动已经默认支持持久化连接了,比如php。$mongo = new Mongo(MONGODB_HOSTS,array('persist' = > "persist".(rand()%PER_NUM)));

node.js如何配置mongodb连接池?

使用node-mongodb-native,这是官方为nodejs提供的驱
动。这个库本本身就实现了pool管理,所以不用另外考虑连接池。使用上可以通过配置链接url或server的属性设置连接池大小。可以在程序初始化时
创建一个全局的访问client,也可以自己再封装一次。所有通过这个client的发出的mongo操作请求,驱动底层都会自动分配链接。由于底层是用
c/c++实现的,所以不用担心代码会阻塞。具体如何创建可以参见http://mongodb.github.io/node-mongodb-native/driver-articles/mongoclient.html#mongoclient-connect

仅供参考~
参考技术A 使用node-mongodb-native驱动,在配置选项中就可以设置连接池选项

var publicdbtoptions = db: ,
server: poolSize: 5 , auto_reconnect:true ,
replSet: ,
mongos:

;
// Initialize connection once
MongoClient.connect(dbUrl,publicdbtoptions ,function(err, database)
if(err) throw err;
dbs.publicdb = database ;
console.info(dbUrl + " open OK publicdb");
//
);本回答被提问者采纳

以上是关于mongodb如何管理连接的?有必要实现连接池吗的主要内容,如果未能解决你的问题,请参考以下文章

spring可以不用连接池吗

为 JBoss 中的连接池配置 MongoDB 数据源

你真的熟悉数据连接池吗?手写实现连接池

C语言有mysql数据库连接池吗?

Android:Firebase 实时数据库有连接池吗?

spark streaming可以基于executor建立mysql的连接池吗