下午好,全部。
我们目前正在从一个Web服务器跳转到两个,为了向我们的用户提供无缝的故障转移,我们需要对会话做一些事情。
目前,我们正在研究三种不同的方法。
我个人希望看到第一个选项到位,因为我们没有第二个选项的专用数据库,第三个选项似乎是一个混乱的黑客。
我目前面临的问题是我的经理对状态服务器提供的单点故障不满意(我们的SQL服务器被复制,所以没有麻烦)。
是否可以做一些关于复制状态服务器的事情?
答案 0 :(得分:3)
这可能是一种痛苦,但我决定关闭Session并处理后果。到目前为止,没有任何不可克服的事情出现。
答案 1 :(得分:2)
经过一番调查,我们决定采用StateServer选项。我们仍然希望看到如何克服StateServer的单点故障,我们已经提出了另外两个调查途径。
我们的第一个选择是使用第三方程序来处理会话。我们现在正在看的那个被称为nCache:我认为还有一个名为ScaleOut的我们也可以看一下。
第二个选项是使用会话状态分区,我们目前也正在调查此选项:http://msdn.microsoft.com/en-gb/magazine/cc163730.aspx
答案 2 :(得分:1)
据我所知,无法备份或复制StateServer服务。在Web场中使用StateServer时的另一个问题是,如果您的群集允许同一浏览器在不同请求上访问不同的计算机,则每个请求可能会有不同的会话数据! (编辑:Martin在下面指出,你可以通过在多个Web服务器之间共享一个StateServer实例来解决这个问题)。为了您的目的,选项2或3将更容错,我将提出另一个想法:对于小块数据尝试使用cookie进行会话存储。
答案 3 :(得分:1)
我认为你正在转向另一个建筑:不止一个前端IIS。
你打算使用NLB吗?
在我的公司中,我们将.NET应用程序迁移到具有网络负载平衡的两个IIS,并且应用程序用于在proc中使用Session管理。
我们调查了另一种选择:
在Microsoft咨询之后,最好的选择是State Server:)
希望它有所帮助!
最诚挚的问候!
答案 4 :(得分:0)
另外,请确保您没有使用SQL Server来存储仅来自数据库的会话状态。如果是这样,您也可以每次都调用数据库。