创建应用程序实例(在服务结构群集资源管理器中)忽略本地计算机

时间:2017-03-03 18:26:32

标签: azure-service-fabric

  1. 使用5.1.163版本的服务架构运行时。
  2. 使用一个无状态Web api(即使用owin通信监听器)创建了一个服务结构应用程序。
  3. 修改生成的代码,使侦听端点包含分区id / instance id / new_guid(就像有状态服务的情况一样)。这应该允许我创建另一个应用程序实例,以便我可以在应用程序级别拥有多租户。
  4. 默认情况下,Local.xml文件设置为此服务的1个实例。
  5. 通过F5将其部署到本地计算机。已验证它仅部署到一个实例。
  6. 已验证服务正常运作。
  7. 导航到本地服务结构资源管理器,然后单击Cluster / Application / AppType节点。点击“创建应用实例”。
  8. 成功创建了第二个应用实例。
  9. 但是在这个新实例中,该服务已部署到所有5个节点。
  10. 我原以为它只将一个节点部署在服务实例中。这是一个错误吗?但只有在这个版本的服务架构中?

1 个答案:

答案 0 :(得分:1)

使用Visual Studio(或PowerShell)部署Service Fabric应用程序时,可以使用为您的应用程序生成的Deploy-FabricApplication.ps1,并在SF项目的/scripts中找到。这个脚本做了两件事(主要是):

  1. 创建/更新应用程序类型
  2. 创建应用程序类型的新/升级现有实例
  3. 第二部分与您在SF Explorer中的操作类似,不同之处在于此处还考虑了您提供的发布者配置文件。 PS脚本实际上读取您的发布者配置文件xml文件,并将其中的所有参数提取到散列集(字典),并将其作为参数传递到步骤2中。

    您可以使用PS cmdlet创建SF应用程序类型的实例(或者您也可以使用FabricClient)。以下命令执行此操作:New-ServiceFabricApplication。在这里,您有机会为新应用程序实例中的服务提供自己的应用程序参数,包括instance count(如果您的应用程序清单中有动态参数)。

    因此,当您使用SF资源管理器创建新的应用程序实例时,您无法控制该实例的创建方式,它始终使用ApplicationManifest.xml中直接指定的默认参数值,而不是您在发布者中指定的值配置文件(local1,local5,cloud等)。

    要控制创建,请使用yor参数作为哈希集运行New-ServiceFabricApplication