如何在开发群集上运行OWIN托管服务的多个实例?

时间:2015-05-20 17:02:18

标签: azure-service-fabric

我浏览了OWIN托管教程并开始运行,但是当我将InstanceCount设置为-1时,似乎该服务的每个实例都在尝试在OpenAync方法中侦听端口80 WebApp.Start。

我假设Service Fabric会在启动服务时动态管理端口,以避免端口冲突,但似乎不会发生这种情况。

1 个答案:

答案 0 :(得分:8)

InstanceCount为-1​​仅适用于在多机群集上运行的无状态服务。在这种情况下,每个节点都在自己的计算机上运行,​​因此您没有端口冲突,您可以配置Azure负载平衡器以通过托管这些实例的计算机循环流量。

在本地群集上,所有节点都在同一台机器上,因此如果它们尝试共享一个公共HTTP前缀,它们确实会发生冲突。要避免这种情况,只需将无状态服务的InstanceCount设置为1即可进行本地部署。

所有这些仅在您希望使用预定义端口与服务进行通信时才需要。如果未在服务清单中指定端口,则平台将在服务启动时自动分配一个端口。但是,客户有责任使用平台的名称解析API动态发现您的端点,这通常是不可取的。

因此,常见的模式是让应用程序使用无状态前端侦听预定义端口,然后执行名称解析以将请求中继到其他服务。这些二级服务可以监听由平台动态分配的端口。