如何在服务结构集群中的特定节点(比如Node0或Node1)中部署结构应用程序



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

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

通常,如果在集群上放置5个应用程序,集群将自动在所有节点上分发服务。

有一个称为放置约束的功能,您可以使用它将服务放置在指定的节点中。

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

  • 自动平衡-服务结构确保资源使用得到优化添加放置约束会限制要平衡的选项。

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

  • 高可用性—Service Fabric可以检测节点故障,并将您的服务转移到正常的节点。添加放置约束限制了移动服务的选项。

这个问题是在这里提出的:https://learn.microsoft.com/en-us/azure/service-fabric/service-fabric-cluster-resource-manager-cluster-description#placement-约束和节点属性

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

最新更新