【问题标题】:how to deploy a fabric application in a particular node(say Node0 or Node1) in service fabric cluster如何在服务结构集群中的特定节点(例如 Node0 或 Node1)中部署结构应用程序
【发布时间】:2017-01-26 06:26:32
【问题描述】:

我想知道是否有可能在服务结构集群的任何特定节点中部署结构应用程序。即在一个节点中,只应部署一个应用程序。 如果InstanceCount =“1”,它部署在一个节点上,但任何其他应用程序也可以部署在同一个节点上。所以如果我有5个应用程序,如果集群中有5个节点,每个节点应该只有一个应用程序。 在将其部署为解决方案之前,我可以在代码中的任何位置提及节点名称吗?

【问题讨论】:

  • 您能否详细说明为什么要将应用程序部署到特定节点?这里有一些关于放置限制的好答案,但根据您想要做什么,可能会有更好的选择。

标签: azure-service-fabric


【解决方案1】:

应用程序只是逻辑容器、部署单元。它们不绑定到节点。服务(副本和实例)是。

一般来说,如果你在集群上放了 5 个应用,集群会自动将服务分发到所有节点。

有一个名为placement constraints 的功能可用于将服务放入指定节点。

在没有明确需要的情况下限制服务放置是不明智的,因为:

  • 自动平衡 - Service Fabric 确保优化资源使用 添加放置约束会限制平衡选项。

  • 复制 - Service Fabric 跨节点复制有状态服务/参与者的数据,以提高可用性并处理节点故障。 添加放置约束会限制要复制的选项。

  • 高可用性 - Service Fabric 可以检测节点故障并将您的服务移动到运行状况良好的节点。添加放置约束会限制移动服务的选项。

【讨论】:

  • 是的,我明白了。谢谢 LoekD。
【解决方案2】:

这个问题是在这里提出的:https://docs.microsoft.com/en-us/azure/service-fabric/service-fabric-cluster-resource-manager-cluster-description#placement-constraints-and-node-properties

“您通常不应该将服务限制为在单个服务器上运行 节点,因为这会阻止高可用性,你不应该 手动配置单个节点。 ...这是一种反模式 因为它将您的应用程序类型与您的环境耦合(如果 节点在不同的环境中以不同的方式命名?)并添加 额外的复杂性(因为现在您必须将所有这些管理为 应用程序参数)。”

【讨论】:

    猜你喜欢
    • 2019-04-17
    • 1970-01-01
    • 2020-08-10
    • 2016-06-16
    • 2017-08-22
    • 2017-11-08
    • 2021-10-13
    • 1970-01-01
    • 2016-04-25
    相关资源
    最近更新 更多