我计划在MongoDB中使用节点js中的微服务来租用用户,我的首选是
带有express
之间的每个microservice)
我的问题是
如何使用多个DB connections?
的优点。
发布于 2021-12-06 08:46:42
不完全确定你在找什么答案。
一种常见的方法是将微服务分离并独立部署到云上。通信是基于事件的,使用Apache、RabbitMQ或云特定工具(如AWS )。
就使用芒果或护照而言,没有什么能真正阻止每一个单独的微服务实现其中的任何一个。
至于多租户,我建议使用策略模式或多态,其中您的服务器维护到所有租户dbs的连接,一旦请求满足,就会选择其中一个连接来完成实际工作。
编辑以回答一些问题:任何服务都有利于多租户。实现多租户系统完全基于您的实现,而不是所涉及的服务。查看多态以实现nodejs中真正的多租户系统。
例如,假设在一个名为dev和prod的系统中有两个租户。可以为db连接创建一个基类,如下所示
class DbRoot {
private connection;
constructor(tenant) {
this.setConnection(tenant);
}
private setConnection(tenant) {
switch(tenant) {
case Tenants.DEV:
this.connection = 'https://dev.db.com';
break;
case Tenants.PROD:
this.connection = 'https://prod.db.com';
break;
default:
throw new Error('tenant not recognized');
}
}之后,您可以使用这个基类来实现一个利用实际db实现的类。
class DbClass extends DbRoot {
constructor(tenant) {
super(tenant);
}
public getUsers() {}
public createUser() {}
...
}https://stackoverflow.com/questions/70242243
复制相似问题