Iis 如何动态检测负载平衡集群中的web服务器节点?

Iis 如何动态检测负载平衡集群中的web服务器节点?,iis,asp.net-web-api,load-balancing,windows-server-2012,web-farm,Iis,Asp.net Web Api,Load Balancing,Windows Server 2012,Web Farm,我正在使用WebSocket在基于ASP.NET Web API的应用程序中实现一些实时协作功能,当应用程序部署在单个Web服务器上时,一切正常 当它部署在软件(或硬件)负载平衡器后面的服务器场上时,我希望实现pub-sub模式,使其中一个web服务器上发生的任何更改调用相同的逻辑来检查这些更改,并通过websocket将这些更改推送到连接到任何其他web服务器的客户端 我理解,如果有一个额外的层使用RabbitMQ、Redis或一些类似的发布/订阅或消息传递组件,就可以做到这一点 但是,有没有

我正在使用WebSocket在基于ASP.NET Web API的应用程序中实现一些实时协作功能,当应用程序部署在单个Web服务器上时,一切正常

当它部署在软件(或硬件)负载平衡器后面的服务器场上时,我希望实现pub-sub模式,使其中一个web服务器上发生的任何更改调用相同的逻辑来检查这些更改,并通过websocket将这些更改推送到连接到任何其他web服务器的客户端

我理解,如果有一个额外的层使用RabbitMQ、Redis或一些类似的发布/订阅或消息传递组件,就可以做到这一点

但是,有没有办法使用DNS或TCP广播或Windows Server/IIS上已有的内容将消息发布到群集中的所有其他同级web服务器?

但是您可以使用MSMQ而不是RabbitMQ,但这仍然没有真正的帮助,因为它是一个队列,而不是发布/订阅,所以请忽略这一点

如果你使用的是信号器,那么有很多关于如何扩展的文档


即使不是signar,您也可以从中获得一些想法。

您知道集群中所有节点的DNS或IP地址吗?或者至少一个?您可以考虑让每个节点在应用程序启动时宣布自己,然后每个系统都会知道另一个。谢谢@matt_lethargic-不,因为应用程序被部署到prem和私有/公有云场景中,所以无法提前知道web服务器的内部DNS名称和/或IP地址(也就是说,没有更多的工作在部署时为每个环境捕获这些内容)只是在阅读关于可能是您想要的,它基于八卦协议。可能是一个起点