动态调整mdb连接上限数

This commit is contained in:
ciniao 2023-12-14 11:20:35 +08:00
parent afbfa70926
commit 3d40edd421
2 changed files with 75 additions and 4 deletions

View File

@ -9,7 +9,7 @@ async function connGameLogDB() {
}else{ }else{
logDBUrl = "mongodb://root:lyMaple525458@10.0.1.20:27017/heijiao_gamelog?authSource=admin"; logDBUrl = "mongodb://root:lyMaple525458@10.0.1.20:27017/heijiao_gamelog?authSource=admin";
} }
let client = await MongoClient.connect(logDBUrl); let client = await MongoClient.connect(logDBUrl,{maxPoolSize:10});
logDB = client.db(`gameLog${G.config.serverId}`); logDB = client.db(`gameLog${G.config.serverId}`);
return logDB; return logDB;
} }

View File

@ -5,6 +5,7 @@ import {
IndexDescription, IndexDescription,
IndexSpecification, IndexSpecification,
MongoClient, MongoClient,
MongoClientOptions,
ObjectId, ObjectId,
OptionalId OptionalId
} from 'mongodb'; } from 'mongodb';
@ -16,6 +17,7 @@ import {MongodbCollections} from './module/mongodb';
import {HuoDongFun} from './public/huodongfun'; import {HuoDongFun} from './public/huodongfun';
import {zbsGroup} from './api_s2c/hbzb/zbs/fun'; import {zbsGroup} from './api_s2c/hbzb/zbs/fun';
import {clusterRunOnce} from './clusterUtils'; import {clusterRunOnce} from './clusterUtils';
import { PublicShared } from './shared/public/public';
const indexs: Partial<{ [k in keyof MongodbCollections]: IndexDescription[] }> = { const indexs: Partial<{ [k in keyof MongodbCollections]: IndexDescription[] }> = {
item: [ item: [
@ -349,9 +351,37 @@ const indexs: Partial<{ [k in keyof MongodbCollections]: IndexDescription[] }> =
}; };
const crossIndexs: Partial<{ [k in keyof MongodbCollections]: IndexDescription[] }> = { const crossIndexs: Partial<{ [k in keyof MongodbCollections]: IndexDescription[] }> = {
email: [
{
key: {sid: 1}
},
{
key: {uid: 1}
}
],
fightLog: [
{
key: {uid: 1, type: 1}
},
{
key: {uid: 1}
},
{
key: {ttl: 1}, expireAfterSeconds: 7 * 24 * 3600
}
],
hbzb_user_cross: [ hbzb_user_cross: [
{ {
key: {uid: 1}, unique: true key: {uid: 1}, unique: true
},
{
key: {jifen: 1}
},
{
key: {rank: 1}
},
{
key: {zbsgroup: 1}
} }
], ],
hbzb_user_zbs: [ hbzb_user_zbs: [
@ -377,13 +407,52 @@ const crossIndexs: Partial<{ [k in keyof MongodbCollections]: IndexDescription[]
rankList: [ rankList: [
{ {
key: {type: 1, idKey: 1}, unique: true key: {type: 1, idKey: 1}, unique: true
} },
{
key: {valArr: -1}
},
],
wzry_fight: [
{
key: {jifen: 1}
},
{
key: {uid: 1}
},
{
key: {zkey: 1}
},
],
wzry_user_cross: [
{
key: {jifen: 1}
},
{
key: {uid: 1}
},
{
key: {zkey: 1}
},
] ]
}; };
export async function initMongoDB() { export async function initMongoDB() {
//mongodb连接数说明https://blog.csdn.net/for_cxc/article/details/116859714
//可结合查看node_modules\mongodb\lib\connection_string.js
//maxPoolSize默认值100
let option:MongoClientOptions;
//跨服只有1个直接采用默认配置就行
if(G.argv.serverType != 'cross'){
if(PublicShared.getOpenServerDay() > 3){
option = {
maxPoolSize: 10
}
}
}
console.log('connect mongodb ......'); console.log('connect mongodb ......');
let client = await MongoClient.connect(G.argv.serverType == 'cross' ? G.config.crossMongodbUrl : G.config.mongodbUrl); let client = await MongoClient.connect(G.argv.serverType == 'cross' ? G.config.crossMongodbUrl : G.config.mongodbUrl, option);
G.mongodb = new _mongodb(client.db(G.config.dbName || '')); G.mongodb = new _mongodb(client.db(G.config.dbName || ''));
console.log('connect mongodb succ'); console.log('connect mongodb succ');
@ -391,7 +460,9 @@ export async function initMongoDB() {
if (G.argv.serverType != 'cross') { if (G.argv.serverType != 'cross') {
console.log('connect crossmongodb ......'); console.log('connect crossmongodb ......');
//本服里,维持住跟跨服数据库的链接 //本服里,维持住跟跨服数据库的链接
let crossClient = await MongoClient.connect(G.config.crossMongodbUrl); let crossClient = await MongoClient.connect(G.config.crossMongodbUrl,{
maxPoolSize:10
});
G.crossmongodb = new _mongodb(crossClient.db(G.config.corssDBName || "")); G.crossmongodb = new _mongodb(crossClient.db(G.config.corssDBName || ""));
console.log('connect crossmongodb succ'); console.log('connect crossmongodb succ');
} }