我可以使用负载均衡器来缩放 Azure Service Fabric 应用吗

Can I use load balancer for scaling Azure Service Fabric apps

最近开始了解 Azure Service Fabric,这似乎是一种将扩展应用程序开发为一组微服务的好方法。到处都在告诉我们,我们需要无状态的前端 Web 服务和有状态的分区内部服务。内部服务 scale by partitioning the data.

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

问题已在 SO 中提出,但作为评论。它没有得到答复,因为原来的问题是不同的。

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

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

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

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

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