如何为多租户应用程序共享和缓存DLL

时间:2019-02-28 07:14:24

标签: c# caching azure-service-fabric

我有一个执行以下操作的应用程序:

  1. 创建一个AppDomain,以便在API收到处理请求时执行流程。
  2. 加载在Service Fabric应用程序上执行某些任务所需的一组dll。
  3. 在该应用程序域中执行整个过程。
  4. 卸载AppDomain并返回响应。

现在有一些情况,

  • 在大多数情况下,DLLS对于用户而言是相同的。例如,当应用程序为每个租户执行一些默认工作时,DLL将特定于该工作,但还提供了一项条款,为每个可以自己使用的租户添加自定义工作。

  • 有不同租户使用的同一dll的多个版本。

对于该应用程序而言,由于我们正在不断通过appdomain容器加载和卸载dll,因此API的执行速度确实非常慢。另外,即使应用程序运行完美,使用的资源也不会得到优化。 (我们在内存和计算上付出了更多,而没有获得性能)。

因此,我需要一些选项来对此进行优化。

  1. 我们可以在某种程度上使用Dll Caching类似于数据缓存吗, dll仅加载一次,但是当请求来自多个用户时,我们可以 创建该类的实例并调用资源?
  2. 加载新的自定义dll时,将为此特定的dll加载相同的文件 租户不影响他人。

请提出在这些情况下最好的选择是什么。

0 个答案:

没有答案