【问题标题】:Prevent service from changing nodes in Service Fabric防止服务更改 Service Fabric 中的节点
【发布时间】:2018-10-03 20:54:52
【问题描述】:
有什么方法可以阻止服务在 Service Fabric 的节点之间移动?
我有一个连接到 api 以收集数据的无状态服务
此 API 一次只允许 1 次登录。
如果 Service Fabric 不断在节点之间移动,则存在 2 个潜在问题 -
1) 我可以解决并发登录问题
2) 假设我可以确定何时关闭 1 个服务并启动另一个服务,则在新节点上的服务登录时会有 x 秒的间隙。我需要持续连接到 api
一旦服务在节点上启动,我希望它保持原状!
保罗
【问题讨论】:
标签:
c#
azure-service-fabric
service-fabric-stateless
【解决方案1】:
默认情况下,无状态服务不会在节点之间“移动”。相反,每个节点将包含该服务的一个运行实例。根据 Round-robin 算法将请求分发到特定的节点实例。
如果您想连接到无状态服务的特定实例,请参阅this Q&A。
您可以将无状态服务的实例数限制为 1(默认为 -1,这意味着它将在集群中的每个节点上运行)。但请注意,这将极大地限制可扩展性和可靠性,这可能是您使用 Service Fabric 的原因之一。
您可以使用 ApplicationManifest.xml 设置服务的实例计数(有关示例,请参见 the docs。或使用 PowerShell 或 code