Tag: 多租户

mongoose多租户 – 处理文档引用+填充

我读过一堆关于Mongoose / MongoDB中的多租户设置选项。 选项是: 分开数据库。 由于每个数据库实例的开销,这是一个“否” 同一数据库中的前缀集合 – 我将拥有共享相同模式的tenant1_Products和tenant2_Products 。 带有参考文件的标准馆藏。 看起来#2是缩放的最佳select,因为它允许通过前缀进行简单的分片。 所以,假设,我会实现这样的dynamic检索某个租户的模型: tenant.methods.getModel = function(name) { return mongoose.model(this.uniqid + '_' + name); } 假设我提前为所有租户注册所有模型,并使用正确的模式,那么我可以做var productModel = myTenant.getModel('Product'); ,然后从那里创build/更新。 这个问题是当你需要实现文档引用来使用Mongoose的populate方法。 例如, var productSchema = new mongoose.Schema({ name:String, categories:[ { type:mongoose.Schema.Types.ObjectId, // This will need to change to "tenant1_Category", etc ref:'Category' } ] }); mongoose.model('tenant1_Product', productSchema); […]

关于用MEAN Stack创build多租户SAAS应用程序的build议(Mongodb,express,angular,node)

我试图围绕开发与MEAN堆栈,而不是PHP和MySQL的SAAS应用程序。 我需要一个很好的方法来build立一个使用mongodb的多租户应用程序。 我从以前的阅读中知道,由于单个mongo数据库的大尺寸,我不想为每个客户build立一个数据库,所以我很可能坚持使用单个数据库。 我想在每个集合中创build类似于具有“customer_id”值的mysql数据库的数据库将是最好的主意,但是这使我的主要问题… 如果我为这个应用程序创build一个REST API,用户将如何访问他们的信息。 我会login他们,然后根据他们的客户端ID,访问API的方式,如: api.myapplication.com/CLIENTID/projects 任何意见,这是表示赞赏。 ====== 我想扩大我的用例情况,因为虽然第一个答案是非常好的,我想要一些额外的build议。 我将创build一个系统,用户注册我们的应用程序,并保留一堆内部logging。 我不想放弃太多的细节,所以可以说这个用户公司注册,然后他可以添加“团队成员”。 他的团队成员都有与他的主要公司有关的个人login信息。 这家公司有几个资源。 可以说估计和发票(像新书)。 我正在考虑启动这个项目,每个公司都提供一个独特的ID。 这个ID变成了一个mongo集合。 里面的单一收集是所有的公司估计,发票,团队成员和文件与他们所有的条纹api信息(我的帐单使用)。 ====== 我已经阅读了每个用户收集数据库的优缺点,我认为根据我读过的内容,每个用户情况下最好是单个数据库,这是我的第二select。 任何更多的意见/反馈基于我原来的问题的扩大表示赞赏。

Node.js有多个子域

我正在使用node.js构build一个多租户应用程序,其中具有自己的子域的不同客户端将访问我的应用程序的单个实例。 我的问题是: 有没有办法让应用程序找出用户在哪个子域? 这样,我可以将用户路由到正确的数据库模式(postgresql)。 提前致谢! 附加信息: 我正在使用Express框架 我没有使用多个实例,因为我希望有成千上万的用户,我不想pipe理数千个实例。 关于子域,我的意思是这样的: myapp.client1domain.com myapp.client2domain.com myapp.client3domain.com 上面的每个url链接到应用程序的同一个实例。 但是,我需要知道用户在哪个子域,所以我可以将它们路由到正确的数据库模式。

多租户(SAAS)使用nodejs集合

我正在尝试使用nodejs和postgres构build一个多租户(/ Software as a service),并将其作为ORMinheritance。 由于安全原因,我决定为每个客户端使用单独的数据库,而不是单个数据库,而所有表都有额外的列。 我取得了这个结果,但是性能并不好,因为我必须根据每个数据库(几乎每个请求)初始化每个数据库的模型。 有没有更好的方法来做到这一点? 我在遗漏了什么东西吗?

Redis中的多租户为node.js

我们有一个多租户NodeJS应用程序,现在我们正在为我们的一些数据添加一个caching层。 我们的目标是使用Redis 包中的 Rediscaching,我们正在努力检查我们支持多租户的选项,主要考虑两点: 保护数据。 清除租户级别的旧数据。 我们目前的调查结果是,我们可以为每个租户使用单独的Redis实例 – 这对我们来说不是一个好的解决scheme。 我们发现的另一个select是使用“tenant_id:”前缀命名空间。 这个选项解决了第一点 – 数据现在是安全的,但我们仍然有第二点要解决。 我们的使用案例是,一个租户可以投入大量的数据来填充caching并推出其他租户的数据。 我们希望在租户级别定义我们的LRU,也就是说,当新数据添加到caching时,它只会驱逐同一租户最近使用的最后一个数据。 有什么build议么?

具有支持多租户应用程序的postgres模式的节点框架?

我正在尝试构build一个多租户API应用程序,并希望将租户数据分隔到postgres中的架构中,但是,我找不到任何具有显式支持postgres中的架构的ORM的nodejs框架。 我发现它最接近的是Bookshelf ORM,它支持传入SQL查询构造的选项,但是这看起来有点冒失。 有什么build议么?

在环回中实施多租户

我们已经在使用loopback作为REST APIs后端服务器。 现在我们的产品需要在我们的系统中拥有多租户,即每个用户的单独数据库。 所以search一小时后,我们得到了Loopback-MultiTenancy POC Sample 。 示例看起来不错,确切地说,我们需要什么,虽然有一些问题,我们正在使用这个POC,也在架构层面。 这个POC为每个tenant创build独立的文件夹。 每个tenant文件夹都有自己的config ,自己的datasource和它自己的models ,这是很好的。 但是我们拥有的是,我们拥有所有用户的共同模式。 所以无论何时创build新用户,都必须创build新的租户文件夹,并手动或使用某个脚本移动该文件夹内的所有models 。 但是当我们有100个用户并且说我们想要改变一个特定的模型模式时,所需要的就是反映所有其他租户文件夹中的变化,这对我们来说是非常麻烦的。 所以我们正在寻找更好的解决scheme,它不要求重复,也是为了达到目的,比如环回。 我们有点卡住,需要一些帮助或build议。 谢谢,

MEAN 2多租户(多个集合保存相互参考)

所以,虽然学习JS,特别是MEAN 2堆栈,我试图build立一个基本的多租户应用程序。 我build立快速注册路线,我试图达到的stream量将是: 注册公司名称,电子邮件和密码。 信息会去保存一个新的租户,然后返回新租户的_id,然后使用这个新的ID,电子邮件和密码来保存一个新的用户。 最接近的是: router.post('/', function (req, res, next) { var tenant = new Tenant({ name: req.body.name }); var newTenant; tenant.save(function (err, tenant) { if (err) { return res.status(500).json({ title: 'An error has occured', error: err }); } res.status(201).json({ message: 'Tenant created', obj: tenant }); return(tenant._id); newTenant = tenant; }); Tenant.findById(newTenant._id, function(err, tenant) […]