【问题标题】:Local cluster does not allow same application type with a different version in local service fabric cluster本地集群不允许本地服务结构集群中具有不同版本的相同应用程序类型
【发布时间】:2016-06-15 23:18:26
【问题描述】:

以下帖子(在 stackoverflow.com 上):

Design of Application in Azure Service Fabric

建议可以同时安装不同版本的相同应用程序类型。我尝试在我的本地集群上安装新版本的应用程序(fabric:/ServiceFabApp1,新版本为 2.0.0 和 ServiceFabApp1Type)(该集群已经具有与版本 1.0.3 相同的应用程序名称和相同的应用程序类型,即fabric:/现有版本为 1.0.3 和 ServiceFabApp1Type 的 ServiceFabApp1)并出现以下错误:

名称为“fabric:/ServiceFabApp1”的应用程序已存在,其类型为“ServiceFabApp1Type”,版本为 '1.0.3'。 您必须先删除现有应用程序,然后才能部署或提供新应用程序 应用程序的新名称。

这是设计使然,应用程序类型(多个版本)可以相同,但每个版本的应用程序名称必须不同?或者它根本不能在本地集群上工作,但在天蓝色的云上工作?还是我对以上链接信息的解读有误?

【问题讨论】:

    标签: azure azure-service-fabric


    【解决方案1】:

    应用程序类型(例如ServiceFabricApp1Type)可以有一个或多个版本,但应用程序实例(例如fabric:/ServiceFabricApp1)只能运行一个版本时间。

    因此,如果您想在本地集群中运行两个不同版本的应用程序类型,您将需要两个不同的应用程序实例,例如,您可以让 fabric://ServiceFabricApp1 运行版本 1.0.0 和织物:/ServiceFabricApp2 运行版本 2.0.0。使用 VS 工具执行此操作的最简单方法是创建两个应用程序参数文件,每个文件定义一个不同的应用程序实例名称。然后,您可以选择以您正在构建的当前版本为目标的当前实例。要在 VS 中类型的版本之间来回移动,您可能只想为每个版本创建一个分支。

    【讨论】:

    • 在这种情况下,您仍然需要有 2 个部署包,不是吗?
    • 是的,但是 VS 会在发布过程中为您生成、复制和注册包。因此,您在 1.0.0 分支上工作并使用参数文件 1 发布,创建 fabric:/ServiceFabricApp1。在幕后,这将在集群的映像存储中生成、复制和注册一个 1.0.0 包。然后切换到 2.0.0 分支,进行更改,并使用参数文件 2 发布,创建 fabric:/ServiceFabricApp2。同样,这将在集群中生成、复制和注册一个 2.0.0 包。当然,如果您愿意,也可以在 VS 之外手动执行打包/复制/注册/新建步骤。
    • 感谢您的确认。很多答案都偏向于 VS 方法。应该对非 VS 方法给予同样的关注。
    • 是的,很好。我假设基于他引用的错误以及他专门询问他可能试图从 VS 部署的本地集群这一事实,诚然,这在展示其中一些概念方面做得并不好。
    • 你说得对,我是从 VS 发布到我的本地集群。
    【解决方案2】:

    部署 SF 应用程序时,有几个步骤: 1. 复制应用包到服务SF镜像存储 2.提供申请 3. 部署/升级应用

    第 1 步只是将包复制到 SF 集群映像存储。 步骤 #2 提供应用程序的新版本,以便 SF 可以部署该应用程序,或者升级现有应用程序(如果已部署)。 第 3 步取决于您之前所做的事情。如果您已经部署了应用的 X 版,则无法部署 X+1 版。您只能升级/降级。

    如果您需要运行多个具有相同版本的应用程序实例,则需要创建不同的包,其中应用程序的名称是唯一名称(多租户方案)。

    【讨论】:

    • 在应用程序类型与应用程序名称的对话中,应用程序名称是否被视为实例?如果是这样,在我看来,应用程序类型就像 C# 中的一个类,应用程序名称是该类的一个实例,这就是为什么我对同一应用程序类型具有不同名称的应用程序实例感到困惑。看起来我对 C# 的类比不起作用。考虑这个问题的更好方法是什么?
    • 类型和实例的 OO 类比非常合适。您的应用程序实例(也称为“命名应用程序”)具有不同的名称,就像同一 C# 类型的不同实例具有不同的名称一样。
    • 啊哈。我想我在 C# 类比中关注实例赋值的右侧,正如您建议关注赋值的左侧(例如不同的变量名)。
    猜你喜欢
    • 2018-09-21
    • 2019-04-17
    • 2019-01-31
    • 2018-12-27
    • 2015-12-10
    • 2021-11-02
    • 2017-10-18
    • 1970-01-01
    • 2021-06-21
    相关资源
    最近更新 更多