✨ feat(db): web和gm添加只读库支持
This commit is contained in:
@@ -1,7 +1,7 @@
|
|||||||
import 'reflect-metadata'
|
import 'reflect-metadata'
|
||||||
import * as mongoose from 'mongoose';
|
import * as mongoose from 'mongoose';
|
||||||
import { Application, IBoot } from 'egg';
|
import { Application, IBoot } from 'egg';
|
||||||
import { loadGmDb, loadSubDb } from '@db/index';
|
import { loadGmDb, loadSubDb, loadRODb } from '@db/index';
|
||||||
import { connectRedis } from '@pubUtils/redis';
|
import { connectRedis } from '@pubUtils/redis';
|
||||||
|
|
||||||
export default class FooBoot implements IBoot {
|
export default class FooBoot implements IBoot {
|
||||||
@@ -18,6 +18,7 @@ export default class FooBoot implements IBoot {
|
|||||||
await this.connectDB(this.app)
|
await this.connectDB(this.app)
|
||||||
await this.connectGMDB(this.app);
|
await this.connectGMDB(this.app);
|
||||||
await this.connectSubDB(this.app);
|
await this.connectSubDB(this.app);
|
||||||
|
await this.connectRODB(this.app);
|
||||||
await this.connectRedis(this.app);
|
await this.connectRedis(this.app);
|
||||||
|
|
||||||
this.app.config.realEnv = this.app.config.env;
|
this.app.config.realEnv = this.app.config.env;
|
||||||
@@ -100,6 +101,20 @@ export default class FooBoot implements IBoot {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public async connectRODB(app: Application) {
|
||||||
|
const { url, options } = app.config.romongoose||app.config.mongoose
|
||||||
|
try {
|
||||||
|
if (url) {
|
||||||
|
const connection = await mongoose.createConnection(url, options)
|
||||||
|
app.context.connectionRO = connection;
|
||||||
|
loadRODb(connection);
|
||||||
|
console.log('******connectSubDB suc', url, options)
|
||||||
|
}
|
||||||
|
} catch(e) {
|
||||||
|
console.log(e)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
public async connectRedis(app: Application) {
|
public async connectRedis(app: Application) {
|
||||||
const { url, pw } = app.config.redis
|
const { url, pw } = app.config.redis
|
||||||
if (url) {
|
if (url) {
|
||||||
|
|||||||
@@ -11,6 +11,11 @@ export default (appInfo: EggAppInfo) => {
|
|||||||
options: { useNewUrlParser: true, useUnifiedTopology: true },
|
options: { useNewUrlParser: true, useUnifiedTopology: true },
|
||||||
};
|
};
|
||||||
|
|
||||||
|
config.romongoose = {
|
||||||
|
url: 'mongodb://dbop:zyzDev2021@dds-8vb5c74ba4263da43.mongodb.zhangbei.rds.aliyuncs.com:3717/zyz?readPreference=secondary&readPreferenceTags=role:readonly&replicaSet=mgset-506991391', // 内网
|
||||||
|
options: { useNewUrlParser: true, useUnifiedTopology: true },
|
||||||
|
};
|
||||||
|
|
||||||
config.redis = {
|
config.redis = {
|
||||||
url: 'r-8vbl8okinxn1zhkwh2.redis.zhangbei.rds.aliyuncs.com', // 内网
|
url: 'r-8vbl8okinxn1zhkwh2.redis.zhangbei.rds.aliyuncs.com', // 内网
|
||||||
pw: 'zyz_alpha_2021'
|
pw: 'zyz_alpha_2021'
|
||||||
|
|||||||
@@ -11,6 +11,11 @@ export default (appInfo: EggAppInfo) => {
|
|||||||
options: { useNewUrlParser: true, useUnifiedTopology: true },
|
options: { useNewUrlParser: true, useUnifiedTopology: true },
|
||||||
};
|
};
|
||||||
|
|
||||||
|
config.romongoose = {
|
||||||
|
url: 'mongodb://yjzDbOp:yjz2023ZyDB@dds-8vb6c08497bde7143.mongodb.zhangbei.rds.aliyuncs.com:3717,dds-8vb6c08497bde7144.mongodb.zhangbei.rds.aliyuncs.com:3717/zyz?readPreference=secondary&readPreferenceTags=role:readonly&replicaSet=mgset-516005505', // 内网
|
||||||
|
options: { useNewUrlParser: true, useUnifiedTopology: true },
|
||||||
|
};
|
||||||
|
|
||||||
config.gmmongoose = {
|
config.gmmongoose = {
|
||||||
url: 'mongodb://yjzGmDbOp:yjz2023ZyGmDB@dds-8vbdf8c89bbdbd241.mongodb.zhangbei.rds.aliyuncs.com:3717,dds-8vbdf8c89bbdbd242.mongodb.zhangbei.rds.aliyuncs.com:3717,dds-8vbdf8c89bbdbd243.mongodb.zhangbei.rds.aliyuncs.com:3717,dds-8vbdf8c89bbdbd244.mongodb.zhangbei.rds.aliyuncs.com:3717/zyzgm?replicaSet=mgset-515829436', // 内网
|
url: 'mongodb://yjzGmDbOp:yjz2023ZyGmDB@dds-8vbdf8c89bbdbd241.mongodb.zhangbei.rds.aliyuncs.com:3717,dds-8vbdf8c89bbdbd242.mongodb.zhangbei.rds.aliyuncs.com:3717,dds-8vbdf8c89bbdbd243.mongodb.zhangbei.rds.aliyuncs.com:3717,dds-8vbdf8c89bbdbd244.mongodb.zhangbei.rds.aliyuncs.com:3717/zyzgm?replicaSet=mgset-515829436', // 内网
|
||||||
options: { useNewUrlParser: true, useUnifiedTopology: true },
|
options: { useNewUrlParser: true, useUnifiedTopology: true },
|
||||||
|
|||||||
@@ -11,6 +11,11 @@ export default (appInfo: EggAppInfo) => {
|
|||||||
options: { useNewUrlParser: true, useUnifiedTopology: true },
|
options: { useNewUrlParser: true, useUnifiedTopology: true },
|
||||||
};
|
};
|
||||||
|
|
||||||
|
config.romongoose = {
|
||||||
|
url: 'mongodb://yjzDbOp:yjz2023ZyDB@dds-8vb801bc3bc34e743.mongodb.zhangbei.rds.aliyuncs.com:3717,dds-8vb801bc3bc34e744.mongodb.zhangbei.rds.aliyuncs.com:3717/zyz?readPreference=secondary&readPreferenceTags=role:readonly&replicaSet=mgset-515829261', // 内网
|
||||||
|
options: { useNewUrlParser: true, useUnifiedTopology: true },
|
||||||
|
};
|
||||||
|
|
||||||
config.gmmongoose = {
|
config.gmmongoose = {
|
||||||
url: 'mongodb://yjzGmDbOp:yjz2023ZyGmDB@dds-8vbdf8c89bbdbd241.mongodb.zhangbei.rds.aliyuncs.com:3717,dds-8vbdf8c89bbdbd242.mongodb.zhangbei.rds.aliyuncs.com:3717,dds-8vbdf8c89bbdbd243.mongodb.zhangbei.rds.aliyuncs.com:3717,dds-8vbdf8c89bbdbd244.mongodb.zhangbei.rds.aliyuncs.com:3717/zyzgm?replicaSet=mgset-515829436', // 内网
|
url: 'mongodb://yjzGmDbOp:yjz2023ZyGmDB@dds-8vbdf8c89bbdbd241.mongodb.zhangbei.rds.aliyuncs.com:3717,dds-8vbdf8c89bbdbd242.mongodb.zhangbei.rds.aliyuncs.com:3717,dds-8vbdf8c89bbdbd243.mongodb.zhangbei.rds.aliyuncs.com:3717,dds-8vbdf8c89bbdbd244.mongodb.zhangbei.rds.aliyuncs.com:3717/zyzgm?replicaSet=mgset-515829436', // 内网
|
||||||
options: { useNewUrlParser: true, useUnifiedTopology: true },
|
options: { useNewUrlParser: true, useUnifiedTopology: true },
|
||||||
|
|||||||
@@ -2,7 +2,7 @@ import 'reflect-metadata'
|
|||||||
import * as mongoose from 'mongoose';
|
import * as mongoose from 'mongoose';
|
||||||
import { Application, IBoot } from 'egg';
|
import { Application, IBoot } from 'egg';
|
||||||
import { connectRedis } from './app/pubUtils/redis';
|
import { connectRedis } from './app/pubUtils/redis';
|
||||||
import { loadGmDb, loadSubDb } from '@db/index';
|
import { loadGmDb, loadRODb, loadSubDb } from '@db/index';
|
||||||
import { SDK_TA_CONST, THINKING_DATA_MODE, THINKING_DATA_MODE_LIST } from '@consts';
|
import { SDK_TA_CONST, THINKING_DATA_MODE, THINKING_DATA_MODE_LIST } from '@consts';
|
||||||
const ThinkingAnalytics = require("thinkingdata-node");
|
const ThinkingAnalytics = require("thinkingdata-node");
|
||||||
|
|
||||||
@@ -20,6 +20,7 @@ export default class FooBoot implements IBoot {
|
|||||||
await this.connectDB(this.app);
|
await this.connectDB(this.app);
|
||||||
await this.connectGMDB(this.app);
|
await this.connectGMDB(this.app);
|
||||||
await this.connectSubDB(this.app);
|
await this.connectSubDB(this.app);
|
||||||
|
await this.connectRODB(this.app);
|
||||||
await this.connectRedis(this.app);
|
await this.connectRedis(this.app);
|
||||||
|
|
||||||
this.app.config.realEnv = this.app.config.env;
|
this.app.config.realEnv = this.app.config.env;
|
||||||
@@ -104,6 +105,20 @@ export default class FooBoot implements IBoot {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public async connectRODB(app: Application) {
|
||||||
|
const { url, options } = app.config.romongoose||app.config.mongoose
|
||||||
|
try {
|
||||||
|
if (url) {
|
||||||
|
const connection = await mongoose.createConnection(url, options)
|
||||||
|
app.context.connectionRO = connection;
|
||||||
|
loadRODb(connection);
|
||||||
|
console.log('******connectSubDB suc', url, options)
|
||||||
|
}
|
||||||
|
} catch(e) {
|
||||||
|
console.log(e)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
public async connectRedis(app: Application) {
|
public async connectRedis(app: Application) {
|
||||||
const { url, pw } = app.config.redis
|
const { url, pw } = app.config.redis
|
||||||
if (url) {
|
if (url) {
|
||||||
|
|||||||
@@ -10,6 +10,11 @@ export default (appInfo: EggAppInfo) => {
|
|||||||
options: { useNewUrlParser: true, useUnifiedTopology: true },
|
options: { useNewUrlParser: true, useUnifiedTopology: true },
|
||||||
};
|
};
|
||||||
|
|
||||||
|
config.romongoose = {
|
||||||
|
url: 'mongodb://dbop:zyzDev2021@dds-8vb5c74ba4263da43.mongodb.zhangbei.rds.aliyuncs.com:3717/zyz?readPreference=secondary&readPreferenceTags=role:readonly&replicaSet=mgset-506991391', // 内网
|
||||||
|
options: { useNewUrlParser: true, useUnifiedTopology: true },
|
||||||
|
};
|
||||||
|
|
||||||
config.redis = {
|
config.redis = {
|
||||||
url: 'r-8vbl8okinxn1zhkwh2.redis.zhangbei.rds.aliyuncs.com', // 内网
|
url: 'r-8vbl8okinxn1zhkwh2.redis.zhangbei.rds.aliyuncs.com', // 内网
|
||||||
pw: 'zyz_alpha_2021'
|
pw: 'zyz_alpha_2021'
|
||||||
|
|||||||
@@ -10,6 +10,11 @@ export default (appInfo: EggAppInfo) => {
|
|||||||
options: { useNewUrlParser: true, useUnifiedTopology: true },
|
options: { useNewUrlParser: true, useUnifiedTopology: true },
|
||||||
};
|
};
|
||||||
|
|
||||||
|
config.romongoose = {
|
||||||
|
url: 'mongodb://yjzDbOp:yjz2023ZyDB@dds-8vb6c08497bde7143.mongodb.zhangbei.rds.aliyuncs.com:3717,dds-8vb6c08497bde7144.mongodb.zhangbei.rds.aliyuncs.com:3717/zyz?readPreference=secondary&readPreferenceTags=role:readonly&replicaSet=mgset-516005505', // 内网
|
||||||
|
options: { useNewUrlParser: true, useUnifiedTopology: true },
|
||||||
|
};
|
||||||
|
|
||||||
config.gmmongoose = {
|
config.gmmongoose = {
|
||||||
url: 'mongodb://yjzGmDbOp:yjz2023ZyGmDB@dds-8vbdf8c89bbdbd241.mongodb.zhangbei.rds.aliyuncs.com:3717,dds-8vbdf8c89bbdbd242.mongodb.zhangbei.rds.aliyuncs.com:3717,dds-8vbdf8c89bbdbd243.mongodb.zhangbei.rds.aliyuncs.com:3717,dds-8vbdf8c89bbdbd244.mongodb.zhangbei.rds.aliyuncs.com:3717/zyzgm?replicaSet=mgset-515829436', // 内网
|
url: 'mongodb://yjzGmDbOp:yjz2023ZyGmDB@dds-8vbdf8c89bbdbd241.mongodb.zhangbei.rds.aliyuncs.com:3717,dds-8vbdf8c89bbdbd242.mongodb.zhangbei.rds.aliyuncs.com:3717,dds-8vbdf8c89bbdbd243.mongodb.zhangbei.rds.aliyuncs.com:3717,dds-8vbdf8c89bbdbd244.mongodb.zhangbei.rds.aliyuncs.com:3717/zyzgm?replicaSet=mgset-515829436', // 内网
|
||||||
options: { useNewUrlParser: true, useUnifiedTopology: true },
|
options: { useNewUrlParser: true, useUnifiedTopology: true },
|
||||||
|
|||||||
@@ -10,6 +10,11 @@ export default (appInfo: EggAppInfo) => {
|
|||||||
options: { useNewUrlParser: true, useUnifiedTopology: true },
|
options: { useNewUrlParser: true, useUnifiedTopology: true },
|
||||||
};
|
};
|
||||||
|
|
||||||
|
config.romongoose = {
|
||||||
|
url: 'mongodb://yjzDbOp:yjz2023ZyDB@dds-8vb801bc3bc34e743.mongodb.zhangbei.rds.aliyuncs.com:3717,dds-8vb801bc3bc34e744.mongodb.zhangbei.rds.aliyuncs.com:3717/zyz?readPreference=secondary&readPreferenceTags=role:readonly&replicaSet=mgset-515829261', // 内网
|
||||||
|
options: { useNewUrlParser: true, useUnifiedTopology: true },
|
||||||
|
};
|
||||||
|
|
||||||
config.gmmongoose = {
|
config.gmmongoose = {
|
||||||
url: 'mongodb://yjzGmDbOp:yjz2023ZyGmDB@dds-8vbdf8c89bbdbd241.mongodb.zhangbei.rds.aliyuncs.com:3717,dds-8vbdf8c89bbdbd242.mongodb.zhangbei.rds.aliyuncs.com:3717,dds-8vbdf8c89bbdbd243.mongodb.zhangbei.rds.aliyuncs.com:3717,dds-8vbdf8c89bbdbd244.mongodb.zhangbei.rds.aliyuncs.com:3717/zyzgm?replicaSet=mgset-515829436', // 内网
|
url: 'mongodb://yjzGmDbOp:yjz2023ZyGmDB@dds-8vbdf8c89bbdbd241.mongodb.zhangbei.rds.aliyuncs.com:3717,dds-8vbdf8c89bbdbd242.mongodb.zhangbei.rds.aliyuncs.com:3717,dds-8vbdf8c89bbdbd243.mongodb.zhangbei.rds.aliyuncs.com:3717,dds-8vbdf8c89bbdbd244.mongodb.zhangbei.rds.aliyuncs.com:3717/zyzgm?replicaSet=mgset-515829436', // 内网
|
||||||
options: { useNewUrlParser: true, useUnifiedTopology: true },
|
options: { useNewUrlParser: true, useUnifiedTopology: true },
|
||||||
|
|||||||
Reference in New Issue
Block a user