每个租户的连接池

时间:2020-04-23 14:47:52

标签: .net entity-framework asp.net-core

我陷入了一个问题,该问题是由租户通过根据要访问的租户来更改数据库连接来运行租户运行的连接池,例如AddDbContextPool,并且有可能由租户重用相同的连接。

1 个答案:

答案 0 :(得分:0)

执行多租户上下文本质上是一种hack,这依赖于上下文仅限于请求这一事实。但是,池化的全部目的是持久存储跨 个请求的基础数据库连接,因此与进行多租户操作根本不兼容。

尽管如此,这种方法现在已经过时了并且过时了。 ASP.NET Core是轻量级的,自包含的且由配置驱动,使其非常适合于运行多个实例,而不仅仅是试图覆盖所有可能情况的一个实例。换句话说,您可以多次部署相同的完全相同的应用程序,并且只需为每个部署通过config切换出诸如连接字符串之类的东西,就无需多租户:每个租户可以并且应该只拥有自己的实例。无论如何,这是更加安全的。作为企业客户,我本人会从不使用一项将客户置于同一地点的服务。那只是使数据泄漏或被黑客入侵的秘诀。

相关问题