【发布时间】:2019-05-25 16:43:40
【问题描述】:
在当前使用无状态服务的情况下,为防止连接丢失,所需的设计是使用在每个节点上运行的主实例(当前设置为使用 5 个节点),希望每个节点上运行的每个主实例有助于端点不会因为以下原因而出错连接丢失。 (在这种情况下,SignalR)
所以设计应该是: 每个分区中的单个主副本和 4 个副本总共运行在 5 个节点中的 5 个分区。
这应该是一个简单的配置设置,但由于缺乏包含示例代码的完整手册,因此很难完成。
到目前为止,我发现的是:
为服务实例计数设置 DefaultValue="-1" 可实现服务在每个节点中运行,但您仍需要将其与以下之一结合:
SingletonPartition 或 UniformInt64Partition 或 命名分区
SingletonPartition 是无状态服务中的默认值,DefaultValue "-1" 与 SingletonPartition 的组合会强制服务仅在一个节点上运行,这超出了使用多个节点的目的。
所以我尝试了类似的方法: StatelessService InstanceCount="5" (这应该是 25,包括副本吗?) UniformInt64Partition PartitionCount="5" lowKey="0" highkey="5" (highkey 应该是 24 以包含所有副本吗?)
一些链接说 lowkey 和 highkey 应该匹配分区数,而另一个链接似乎包括所有实例,包括副本。
我还是没有成功实现5个分区,5个节点,每个分区运行主服务..
【问题讨论】:
标签: c# azure-service-fabric service-fabric-stateless