5

大家下午好。

我们目前正在从一台 Web 服务器跳转到两台,为了向我们的用户提供无缝故障转移,我们需要对会话做一些事情。

目前,我们正在研究三种不同的方法。

  1. 使用状态服务器
  2. 使用 SQL 服务器
  3. 把所有东西都塞进隐藏的领域

我个人希望看到选项一到位,因为我们没有选项二的专用数据库,选项三似乎是一个混乱的黑客。

我目前面临的问题是我的经理对状态服务器提供的单点故障不满意(我们的 SQL 服务器是复制的,所以那里没有问题)。

关于复制状态服务器或类似的东西可以做些什么吗?

4

5 回答 5

3

这可能会很痛苦,但我决定关闭 Session 并处理后果。到目前为止,没有什么不可逾越的事情发生。

于 2009-04-07T20:47:16.037 回答
2

经过进一步调查,我们决定使用 StateServer 选项。我们仍在寻找如何克服 StateServer 上的单点故障,并且我们已经找到了两个进一步的调查途径。

我们的第一个选择是使用第三方程序来处理会话。我们现在正在研究的一个称为nCache:我认为还有另一个称为 ScaleOut,我们也可以看看。

第二个选项是使用会话状态分区,我们目前也在研究这个选项:http: //msdn.microsoft.com/en-gb/magazine/cc163730.aspx

于 2009-04-08T08:00:06.213 回答
1

据我所知,没有办法备份或复制您的 StateServer 服务。在 Web 场中使用 StateServer 时的另一个问题是,如果您的集群允许相同的浏览器在不同的请求上访问不同的机器,那么它们在每个请求上可能有不同的会话数据!(编辑:Martin 在下面指出,您可以通过在多个 Web 服务器之间共享单个 StateServer 实例来解决此问题)。出于您的目的,选项 2 或 3 会更容错,我将提出另一个想法:对于小块数据,请尝试使用 cookie 进行会话存储。

于 2009-04-07T12:43:03.047 回答
1

我认为您正在转向另一种架构:多个前端 IIS。

你会用NLB吗?

  • 如果是这样,您最好的选择是使用状态服务器,它在概念上将充当应用程序服务器。

在我的公司,我们正在将 .NET 应用程序迁移到两个具有网络负载平衡的 IIS,并且应用程序用于在 proc 中进行会话管理。

我们调查过还有另一种选择:

  • 在 NLB 配置中使用客户端关联,允许回发返回到生成进程的 IIS,代价是失去所有 NLB...

在 Microsoft 咨询之后,最好的选择是 State Server :)

希望能帮助到你!

最好的祝福!

于 2009-04-07T20:36:07.730 回答
0

还要确保您没有使用 SQL Server 来存储仅来自数据库的会话状态。如果是这样,您还不如每次都调用数据库。

于 2009-04-07T20:27:41.307 回答