我已经看了RavenDb一段时间,并且已经开始关注MultiTenancy了。多租户的Ayendes示例如下所示:
using(var store = new DocumentStore
{
Url = "http://localhost:8080"
}.Initialize())
{
store.DatabaseCommands.EnsureDatabaseExists("Brisbane");
store.DatabaseCommands.EnsureDatabaseExists("Melbroune");
store.DatabaseCommands.EnsureDatabaseExists("Sidney");
using (var documentSession = store.OpenSession("Brisbane"))
{
documentSession.Store(new { Name = "Ayende"});
documentSession.SaveChanges();
}
}我不知道每个数据库是如何存储的,因此有一个问题:这是否适用于有很多租户的大型应用程序?
发布于 2011-09-10 00:46:18
请参阅文档的第一段和最后一段(v2.5 | v3.0)。
RavenDB的数据库在设计时考虑到了多租户,并打算在一台服务器上支持大量数据库。为此,RavenDB将仅保持活动数据库的打开状态。如果您第一次访问数据库,该数据库将被打开并启动,因此下一次对该数据库的请求将不必支付打开该数据库的成本。但是如果一个数据库已经有一段时间没有被访问过了,RavenDB会清理所有与该数据库相关的资源并将其关闭。
这允许RavenDB管理大量数据库,因为在任何给定时间,只有活动数据库实际占用资源。
因此,是的,它将支持它,并且每个数据库都将存储在磁盘上的单独文件夹中。
发布于 2021-09-15 00:57:20
实现多租户(加上混合组合)有3种基本选择:

在RavenDB中一切都很好(最初的问题是关于选项#2)。当然,完全隔离租户的选项#1更安全,但从长远来看,其他选项可能会变得更便宜,选项#3是三个选项中最实惠的(从长远来看)。
查看以下资源:
https://stackoverflow.com/questions/7364698
复制相似问题