HAproxy采用粘滞会话吗?

标签: haproxy 会话 | 发表时间:2013-06-05 12:11 | 作者:ChinaNetCloud
出处:http://blog.csdn.net

HAProxy是我们选用的世界一流的负载均衡器,每秒可处理250,000个连接及数万个请求。不仅功能强大,而且经事实证明,它仍然非常灵活,有强大的记录及监控系统还有很多其它特点。

但是,同其它许多负载均衡器相同的是,HAproxy的主要特点也是:粘滞会话。这一功能很有用,甚至对于某些系统来说,是必须的,如某些系统的网络服务器会话是不可移动的,即不可在网络服务器之间随机移动会话。许多PHP系统不使用此功能,因为它们使用Memcache来存储会话。但是基于Java的系统通常采用此功能,因为很多数据是存在本地每台应用服务器的内存中。

因为各种需求不同,而很多人认为,粘滞是好的,所以,我们的系统默认设置就是粘滞会话。HAProxy使用cookie来追踪用户或浏览器最后使用的后台服务器,如果有新的需求,将自动转给同样的后台服务器进行处理。

虽然看起来这一系统功能工作简单,但是有时候是会遇到问题的,事实上,最近发生的一系列问题,使我们重新思考是否应该把粘滞会话设置为默认状态,是否对于某些服务,尤其是对于大型的繁忙系统,我们可以关闭这一功能吗?

尽管从理论上来说,一切应该不会出错,但是在系统高负载时的动态行为可能导致系统不稳定。我们见到过这样一个案例,当后台服务器已经超负荷的时候,负载均衡器仍然把需求调度到这一服务器,直至服务器瘫痪,而事实上,负载均衡器应该把用户需求调度到其他服务器上进行处理。

这是因为cookie要求这样做,所以才发生此操作。尽管HAProxy有负载均衡分配方法即令牌循环分配法,但要弄清楚一点:这种方法只是在没有cookie的情况下才会进行请求分配。当存在cookie的时候,会分配给同一台后台服务器,直至服务器瘫痪。然后,cookie和负载再转至下一台服务器,导致下一台服务器超负载。

这会带来很多系统不稳定问题,当超负载时,负载会在系统间不断跳动。结果就是,对于每秒处理上千请求的繁忙系统来说,要想关闭它或排除其故障,真的是很困难的。

因此,关闭cookies或会话后,实际的令牌循环或其它有用的方案如最小连接数才能生效,可以对请求进行均衡处理。我们亲历过关闭这些cookie或会话后,系统稳定性提高了很多。

所以,现在只有当需要用到粘滞会话的时候,我们才用,如Java系统或其它系统。除了这些特殊情况之外,我们会让请求自由分配,以提高系统性能及稳定性。

 

                 (Authored by Steve Mushero / ChinaNetCloud CEO & CTO  本博客英文原文请 点此查看
作者:ChinaNetCloud 发表于2013-6-5 12:11:27 原文链接
阅读:112 评论:0 查看评论

相关 [haproxy 会话] 推荐:

HAproxy采用粘滞会话吗?

- - CSDN博客系统运维推荐文章
HAProxy是我们选用的世界一流的负载均衡器,每秒可处理250,000个连接及数万个请求. 不仅功能强大,而且经事实证明,它仍然非常灵活,有强大的记录及监控系统还有很多其它特点. 但是,同其它许多负载均衡器相同的是,HAproxy的主要特点也是:粘滞会话. 这一功能很有用,甚至对于某些系统来说,是必须的,如某些系统的网络服务器会话是不可移动的,即不可在网络服务器之间随机移动会话.

Haproxy+KeepAlived 负载均衡

- - CSDN博客系统运维推荐文章
软件负载均衡一般通过两种方式来实现:基于操作系统的软负载实现和基于第三方应用的软负载实现. LVS就是基于Linux操作系统实现的一种软负载,HAProxy就是开源的并且基于第三应用实现的软负载. 还可以使用nginx来实现,不过nginx只工作在7层网络之上. 详细请参考 抚琴煮酒写的“ 软件级负载均衡器(LVS/HAProxy/Nginx)的特点简介和对比”这篇文章,简单很详细,很好.

haproxy负载均衡 xtracluster

- - x-marker的博客
上一篇为xtracluster的安装(http://xmarker.blog.163.com/blog/static/226484057201472610520306/),本篇将记录下使用haproxy在三个数据节点做负载均衡,haproxy可以安装在数据节点,也可以安装在别的节点,如果安装在数据节点,需要注意端口号不能和mysql的3306冲突.

Percona XtraDB Cluster 搭配 HAProxy

- - 小惡魔 - 電腦技術 - 工作筆記 - AppleBOY
本篇文章紀錄安裝 Percona XtraDB Cluster (簡稱 PXC) 及搭配 HAProxy 做分散流量系統,其實在業界已經很常看到 HAProxy + MySQL Cluster Database 解決方案,HAProxy 幫您解決負載平衡,並且偵測系統是否存活,管理者也就不用擔心 MySQL 服務是否會掛掉.

RabblitMQ Cluster + HAProxy(负载均衡)

- - 飞翔的荷兰人
        在本节中,我们主要来学习软件负载均衡器HAProxy在RabbitMQ集群中的使用.         软件负载均衡器HAProxy.         HAProxy的特点是:.         1、HAProxy是支持虚拟主机的,,并能支持上万级别的连接;.         2、能够补充Nginx的一些缺点比如Session的保持,Cookie的引导等工作;.

MyCat集群部署(HAProxy + MyCat)

- - 行业应用 - ITeye博客
参考实战视频: http://www.roncoo.com/course/view/85d6008fe77c4199b0cdd2885eaeee53. 《高可用架构篇--第13节--MySQL源码编译安装(CentOS-6.6+MySQL-5.6)》. 《高可用架构篇--第14节--MySQL主从复制的配置(CentOS-6.6+MySQL-5.6)》.

MySQL 5.5 keepalived + haproxy + MHA 自动容灾

- - CSDN博客数据库推荐文章
keepalived安装:. } } 在83上配置 vim /usr/local/etc/keepalived/keepalived.conf global_defs {. 在81和83上安装mha node,在82上安装mha manager. vi /usr/local/share/perl5/MHA/ManagerConst.pm 89 my $msg = $args{message}; 90 $msg = "" unless($msg); <=插入一行 91 chomp $msg;.

HAProxy 反向代理的使用

- - Fantasy
HAProxy 是一款高性能的反向代理软件,它可以基于四层或七层进行反向代理,尤其适合于高负载且需要进行七层处理的 Web 站点. HAProxy 主要有 1.5,1.4 和 1.3 三个版本. CentOS 6 的 EPEL 源中已经加入了 HAProxy 的 RPM 包,因此安装 HAProxy 直接使用 yum 安装即可.

使用HAProxy对MySQL进行负载均衡和状态监控

- Kevin - Michael`s blog
转载请保留原文内容,并声明转载地址:http://www.toplee.com/blog/1284.html. 乐搜(lesoo.com)使用HAProxy已经很久了,但主要用在前端web请求的负载均衡和状态监控上,对于后端的Memcached以及MySQL却一直没有应用,最近对系统架构进行了小规模的整理,把MySQL也收编到了HAProxy下,经过一段时间的使用,体验还是不错的.

使用haproxy做TCP协议负载均衡

- - 行业应用 - ITeye博客
之前有使用过Nginx进行tcp负载均衡,但后来发现nginx总是会跟服务端进行断开连接、断开连接的操作,所以选择一下别的代理进行处理. 写这个的时候,我也只是把haproxy运行成功,而且简单测试了一下,具体适不适合自己的系统还有待测试. 1.下载haproxy:. 从主页下载,我使用的是最新版本,haproxy-1.4.24.tar.gz.