代码之家  ›  专栏  ›  技术社区  ›  Louis S. Berman

服务结构:插件与应用程序类型

  •  1
  • Louis S. Berman  · 技术社区  · 8 年前

    在一个相关的问题中,我通常理解如何实现插件架构,但我不太确定将实际插件放置在哪里,以便在服务结构上运行的实例可以发现。

    无论如何,谢谢你的帮助。。。。

    2 回复  |  直到 8 年前
        1
  •  3
  •   LoekD    8 年前
    1. 我认为这两种方法都可行。使用大量应用程序类型会增加运行大量进程的(显著)开销,但允许您使用和升级同时运行的同一算法的多个版本。

      使用应用程序方法可能需要某种请求路由器,而 插件服务可以自行决定(如果是无状态的)。

    2. 您可以创建一个有状态服务,作为插件存储库,或装载文件共享,或使用数据库,而不受此处平台的限制。您可以使用命名约定来定位适当的插件。

        2
  •  0
  •   abarger    7 年前

    如果在更改给定应用程序实例所需的插件集时,您可以接受应用程序升级,那么以下方法可能有效。

    回想一下,Service Fabric应用程序必须在部署或升级之前打包。使用msbuild任务或Powershell,您可以将插件DLL复制到插件运行器服务的代码包中,作为应用程序升级之前的后打包步骤。然后,您的插件DLL将在服务启动时使用 Assembly.Load 以及代码包的路径,可在服务实现的 Context.CodePackageActivationContext.GetCodePackageObject("Your-Code-Package-Name").Path ServiceManifest.xml ,并命名为 Code 默认情况下。