我正在使用WebSockets在基于ASP.NET Web API的应用程序中实现一些实时的协作功能,当该应用程序部署在单个Web服务器上时,一切运行正常。
当将它部署在软件(或硬件)负载均衡器后面的服务器场中时,我想实现pub-sub模式以使其中一台Web服务器上发生的任何更改调用相同的逻辑来检查并推送这些通过websocket更改为连接到其他任何Web服务器的客户端。
我知道,如果使用RabbitMQ,Redis或某些类似的发布/订阅或消息传递组件的附加层可以做到这一点。
但是有没有一种方法可以使用DNS或TCP广播,或者Windows Server / IIS上已经可以使用的某种方法将消息发布到群集中的所有其他同级Web服务器?
答案 0 :(得分:1)
否。
但是您可以使用MSMQ代替RabbitMQ,但这仍然无济于事,因为它是队列,而且不是pub / sub,所以请忽略它。
如果您使用的是SignalR,那么有很多关于如何进行扩展的文档,例如Introduction to Scaleout in SignalR
即使不是SignalR,您也可以从中获得一些想法。