我们正在开发一个使用SignalR推出频繁更新某些业务重要指标的系统。我们将拥有中等数量的连接客户端,从50到1000,每个客户端都需要一个独特的有效负载。
根据Damian Edwards的讲话,我们的负载配置文件最符合特定服务器扩展模式,我们实际上将客户端分配给拓扑中的特定SignalR服务器,而不是使用背板。
关于这是如何工作的粗略伪代码是客户端在我们的负载平衡API URL上执行GET,无论哪个服务器响应其URL,然后客户端配置SignalR客户端库以使用该URL进行连接。
看起来它在内部部署效果很好,但现在我们也在计划Azure部署。如果没有此要求,Azure网站非常适合。但是,这种模式要求我们可以可靠地识别网站中的个别实例,我们不会看到这样做。
这是否打破了Azure网站提供的抽象?我们是否必须使用VM或Web角色为每个SignalR实例获取可靠,一致的IP或可寻址URL?或者是否有人将SignalR与特定服务器一起部署到Azure。
答案 0 :(得分:0)
默认的Azure网站行为可能实际上适合您。
Azure网站在客户端发出第一个请求后将关联令牌保存为cookie。该亲和性令牌可确保来自该客户端的所有未来请求都被路由到该网站的同一实例。
如果您真的想要出于某种原因自己处理负载平衡,那么这也是可能的。有一个API可以让您获得所有网站实例的亲和力令牌。
请点击此处了解详情:http://blog.amitapple.com/post/2014/03/access-specific-instance/#.VH-KOHl0xUY