2010-08-30 66 views
0

我的挑战如下。我想为发布的表单维护Post/Redirect/Get模式,但是在重定向后,我仍然希望在无效字段的情况下显示表单的状态。这些信息可以通过很容易地将它存储在会话中来传递。我可以在其后面的网站上启用和禁用负载均衡器上的粘性会话吗?

但是,这些网站通常运行在负载平衡器后面的多个网络服务器上,这些网络服务器配置为不粘。也没有专门的共享会话状态。

要在Web服务器上使用本地会话状态将会更适合可伸缩性,但要做到这一点,您需要粘性会话。但是,粘滞会话是管理服务器的人员的障碍,因为在从负载平衡器中删除一些服务器以执行发布之后,在所有会话结束之前,他们仍然需要等待大约10到15分钟。没有粘性,它几乎是瞬间的。

真的很酷的是,如果我们可以在POST或REDIRECT之后将会话粘滞为一个后续请求。甚至可以完全控制何时启用或禁用代码的粘性。

有谁知道这种行为是否可行?通过设置一个cookie可能?或者一些http头?

+0

你已经告诉我们任何关于任何应用软件或硬件LB在使用,因此没有什么,以此为基础的答案。 – skaffman 2010-08-30 17:09:41

+0

应用程序软件是基于在IIS6上运行的ASP.NET MVC的网站。我不知道哪个负载平衡器被使用,但明天会发现。我已经想到了 - 如果可能的话 - 它可能取决于负载平衡器的模型。 但也许你已经知道一些负载平衡器具有这些技巧,而另一些则没有。或者更好,一个通用的方法来做到这一点。 – 2010-08-30 20:05:03

+0

负载均衡器是Citrix Netscaler。 – 2010-08-31 10:02:29

回答

0

一些想法:

  1. 中央缓存服务器

    • 将其保存到缓存服务器(者优先Redis的),与到期
    • 重定向到与URL中的参数取得动作。使用此参数恢复模型。在url

    • 状态,如果该模型是小,您可以将其保存为在URL参数。

相关问题