8

最近了解了 Azure Service Fabric,这似乎是一种将扩展应用程序开发为一组微服务的好方法。到处都在说明我们需要无状态的前端 Web 服务和有状态的分区内部服务。内部服务通过对数据进行分区来扩展

但是负载中的前端服务会发生什么?.机会非常少,因为他们除了依赖内部有状态服务什么都不做。我们仍然应该在前端服务之前使用负载均衡器吗?如果是这样,我们是否也可以使用 OWIN 或任何其他 Web 主机通过 Service Fabric 的无状态模型来托管相同的内容?

这个问题已经在 SO 中提出,但作为评论。它没有得到答复,因为原始问题不同。 Azure Service Fabric 使用情况

4

1 回答 1

11

是的,您肯定也希望在无状态服务之间分配负载。关键区别在于,由于它们是无状态的,它们可以以循环方式处理请求。

有状态服务有分区,映射到服务状态的各个块,而无状态服务只是有实例,它们是彼此相同的克隆,只是在不同的节点上。您可以在应用程序清单中的默认服务定义中设置实例数。例如,此声明将确保集群中始终运行 5 个无状态服务实例:

<Service Name="Stateless1">
   <StatelessService ServiceTypeName="Stateless1Type" InstanceCount="5">
     <SingletonPartition />
   </StatelessService>
</Service>

您还可以将 InstanceCount 设置为 -1,在这种情况下,Service Fabric 将在每个节点上创建您的无状态服务实例。

Azure 负载均衡器将在您的每个实例之间轮询您的传入流量。不幸的是,目前还没有一种在一体机环境中模拟这种情况的好方法。

于 2015-07-24T00:29:36.947 回答