最近了解了 Azure Service Fabric,它似乎是将扩展应用程序开发为一组微服务的好方法。到处都在告诉我们,我们需要无状态的前端 Web 服务和有状态的分区内部服务。内部服务scale by partitioning the data .
但是负载中的前端服务会发生什么情况呢? .这种机会非常小,因为他们什么都不做,只是依赖内部有状态服务。我们还应该在前端服务之前使用负载均衡器吗?如果是这样,我们是否也可以使用 OWIN 或任何其他 Web 主机通过 Service Fabric 的无状态模型托管相同的内容?
这个问题已经在 SO 中提出,但作为评论。由于最初的问题不同,它没有得到答复。 Azure Service Fabric usage
最佳答案
是的,您肯定也希望在无状态服务之间分配负载。关键区别在于,由于它们是无状态的,因此它们可以以循环方式处理请求。
有状态服务具有分区,映射到服务状态的各个 block ,而无状态服务仅具有实例,这些实例是彼此相同的克隆,只是位于不同的节点上。您可以在应用程序 list 中的默认服务定义中设置实例数。例如,此声明将确保集群中始终运行 5 个无状态服务实例:
<Service Name="Stateless1">
<StatelessService ServiceTypeName="Stateless1Type" InstanceCount="5">
<SingletonPartition />
</StatelessService>
</Service>
您还可以将 InstanceCount 设置为 -1,在这种情况下,Service Fabric 将在每个节点上创建无状态服务的实例。
Azure 负载均衡器将对每个实例的传入流量进行循环。不幸的是,目前还没有一种好方法可以在单一环境中模拟这一点。
关于azure - 我可以使用负载均衡器来扩展 Azure Service Fabric 应用程序吗,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31598366/