负载平衡服务器中的WCF回调



我有一个使用WCF回调合约开发的聊天应用程序。这里使用netttcp绑定进行客户端和服务器通信。

客户端是一个Windows窗体应用程序,将运行在客户端机器(XP或Windows8机器)

此WCF服务作为windows服务托管在服务器机器中。我在服务中维护一个客户端会话列表,这将存储有关连接到服务器的每个客户端的详细信息,该列表是静态变量。

工作流程是,每当客户端使用connect操作连接到服务器时,客户端详细信息将被添加到客户端会话列表中,该会话列表将被服务器使用,以便在需要时向客户端发送消息。

在单服务器环境中一切都很好,现在我想知道如何在负载平衡场景中处理这个问题,这意味着我有两台服务器机器,同时一台服务器将处于活动状态。如果服务器1失败,则服务器2将处于活动状态。在这种情况下,我如何管理两个服务器之间的客户端会话共享,并在不干扰客户端的情况下正常工作?

一种选择是使用会话状态存储提供程序,它将为服务器服务的两个实例提供会话状态。

如MSDN所示:http://msdn.microsoft.com/en-us/library/z414bbk9(v=vs.100).aspx

的Web场配置,它可以存储在进程外使用要么是ASP。. NET状态服务或Microsoft SQL Server数据库

ASP。. NET状态服务有很好的文档http://msdn.microsoft.com/en-us/library/ms178581(v=vs.100).aspx

对于数据库解决方案…嗯…您必须分析由于数据库访问而增加的开销。

另外,如果您使用IIS托管服务,您可以考虑使用进程外会话状态(http://technet.microsoft.com/en-us/library/cc754032%28v=ws.10%29.aspx)。

这些只是一些想法。您可以查看微软技术提供的其他web farm同步技术

最新更新