【问题标题】:Connection Pooling per Tenant每个租户的连接池
【发布时间】:2020-04-23 14:47:52
【问题描述】:

我遇到了一个问题,即通过根据正在访问的租户更改数据库连接,租户运行 AddDbContextPool 等连接池,并且租户可以重用相同的连接。

【问题讨论】:

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


    【解决方案1】:

    执行多租户上下文本质上是一种 hack,依赖于上下文限定于请求的事实。但是,池化的全部意义在于在个请求之间保持底层数据库连接,因此它与多租户模式根本不兼容。

    不过,无论如何,这种方法现在已经过时了。 ASP.NET Core 是轻量级、自包含和配置驱动的,非常适合运行多个实例,而不是一个实例试图覆盖所有可能的场景。换句话说,您可以多次部署相同的应用程序,并且只需通过配置为每个部署切换连接字符串等内容,从而无需多租户:每个租户都可以并且应该只拥有自己的实例。无论如何,这要安全得多。作为一名企业客户,我自己永远会选择在一个实例中将他们的客户放在一起的服务。这只是让您的数据泄露或被黑客入侵的秘诀。

    【讨论】:

      猜你喜欢
      • 2021-05-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-03-30
      • 2019-11-30
      相关资源
      最近更新 更多