使用负载均衡器进行粘性会话有何不利之处?


13

我们有一个运行良好的IIS7计算机的Web场。在它们前面是F5 Big-IP硬件负载平衡器,也可以正常工作:)

替代文字
(来源:www.f5.com

目前,我们正在使用ASP.NET State Service来处理OutProc状态。当您具有Web场来维护任何类型的会话信息时,这是必需的。

我想知道我们是否可以在F5 Big-IP上进行粘性会话,从而从OutProc切换回InProc?如果是这样,这有什么缺点?我知道InProc与OutProc的缺点,因此不必担心会解释这一点。我对使用F5 Big-IP进行粘性会议利弊更为感兴趣。

任何人都可以阐明和/或体验吗?

Answers:


15

有两个主要缺点:

  1. 您的负载分布不均。粘性会话将持续,因此得名。虽然初始请求将平均分配,但是您最终可能会花费大量时间花费更多的时间。如果所有这些最初都设置为单个服务器,则该服务器将具有更多的负载。通常,这并不会真正产生很大的影响,可以通过在群集中拥有更多服务器来减轻这种影响。

  2. 代理将用户聚集到单个IP中,所有这些IP都将发送到单个服务器。尽管这通常没有什么害处,但是除了增加单个服务器的负载之外,代理也可以在群集中运行。如果该请求来自该代理系统中不同的代理服务器,则从这样的系统向F5发送的请求不一定会发送回同一服务器。

AOL在某一时刻使用代理群集,并且确实与负载平衡器和粘性会话搞混了。现在,大多数负载平衡器将提供基于C级网络范围的粘性会话,或者对于F5,基于cookie的粘性会话将最终节点存储在Web请求cookie中。

虽然基于cookie的会话应该可以工作,但是我在使用cookie时遇到了一些问题,通常选择基于IP的会话。但是,我主要是在内部应用程序上工作-DMZ的运行时间可能会有所不同。

综上所述,在运行带有粘性会话和过程中会话的F5的网站方面,我们取得了巨大的成功。

您可能还想看一看内存中分布式缓存系统(例如Memcached或Velocity)中的一种,以替代会话存储在SQL中或进程外内存服务中。您可以跨多个服务器运行它,从而接近进程内存储器的速度。


除了CPU以外,还有其他方法可以在带有IIS7的Windows 2008计算机上以本机检查当前的连接和/或带宽...,以查看服务器是否繁忙/忙碌?基本上,您使用什么指标来确保服务器不会爆炸?
Pure.Krome

不久前,我们将粘性IP和粘性cookie会话混合使用,发现分布不均,但并非如此。AOL代理群集是IP群集的噩梦,我们不得不对异常进行硬编码。
ericslaw

本机性能计数器将显示活动的HTTP连接。
Christopher_G_Lewis 2009年

@Christopher_G_Lewis您是否愿意详细说明基于F5的基于cookie的会话所遇到的问题?
尤金·别列索夫斯基


4

除了克里斯托弗(Christopher)的出色回答外,棘手的会话还意味着您已经失去了冗余服务器的许多巨大好处-能够进行一次或多次停机维护的能力以及面对系统故障时的透明性。

我认为粘性会话是不良应用程序体系结构和/或不良编程的有力指示。我的座右铭是“不惜一切代价避免”。


关于维护的优秀思想。在将DRAIN从集群中删除之前,我们在服务器上抛出了DRAIN。DRAIN表示当前会话已处理,但该服务器上没有新的会话启动。
Christopher_G_Lewis 2009年

值得庆幸的是,没有人需要在短时间内进行维护,也没有服务器会意外死机(导致粘在该服务器上的所有会话突然变得无用,我敢打赌客户会喜欢的)。
womble

您可以在不对F5本身进行任何配置的情况下从服务器中删除吗?基本上,我们无权访问F5(在托管托管情况下由F5托管)。但是我们拥有对Web服务器的完全访问权限。.那么,您可以通过在网站中删除文件或其他内容来排水吗?
Pure.Krome

我们的F5通过网站上的文本文件确定服务器启动/服务器关闭/排水-文件的上下文为“ UP / DOWN / DRAIN”。检查您的IIS日志以确定他们在看什么。请注意,有时F5只是在TCP / IP端口上执行SYN / ACK,在这种情况下,您必须让托管人更改F5的配置。
Christopher_G_Lewis
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.