一,什么负载均衡
一个新网站是不要做负载均衡的,因为访问量不大,流量也不大,所以没有必要搞这些东西。但是随着网站访问量和流量的快速增长,单台服务器受自身硬件条件的限制,很难承受这么大的访问量。在这种情况下,有二种方案可以选择:
1,对单台服务器的硬件进行更新,由双核的变成四核的,内存加大等。
2,增加服务器的台数,来分担服务器的负担。以实现增加网络带宽,增加服务器的处理能力的目的。
第一种方法可以理解为纵向发展,这种方法总是有限。第二种方法才是解决问题的正确选择
实现负载均衡的方法,大至分为二个方向,一种是用软件来实现负载均衡,另一种是硬件实现负载均衡(包括结合硬件和软件)
用软件来实现负载均衡,实现负载均衡的过程,自身也要消耗一些系统资源,响应时间增加。例如:LVS,nginx,haproxy,apache等这些基于应用层 的负载均衡软件,适合那些访问量不是特别大的网站。如果像sina,163这样大访量的网站,用硬件来实现负载均衡是最明志的选择。
负载均衡的算法很多,有根据请求数来进行负载均衡的,有根IP来负载均衡的,有根据流量的等等。我经常会用的二种算法。
一个是根据请求数
a,可以实现各台服务器都能比较平均分担客户的请求,其中一台服务器down掉的话也不会造成不好的影响。
b,服务器间的状态要同步,如session,需要其他手段来同步这些状态。
一个是根据IP
a,ip_hash算法可以把一个ip映射到一台服务器上,这样可以解决session同步的问题
b,ip_hash也有不好的地方就是,假如其中的一台服务器down掉的话,映射到这台的服务器的用户就郁闷了。
c,ip_hash容易导致负载不均衡的情况,现在河蟹政府对google的搜索关键词进行过滤,你会经常发现google打不开,但是过一会就好了。这让那些google的爱好者们郁闷不已,很多用户都到国外找代理去了,狗急跳墙,人急XX。如果这样的话,这些代理会被分到同一个服务器,会导致负载不均衡 ,甚至失效。
二,什么是会话保持,有什么作用
会话保持是指在负载均衡器上有一种机制,在作负载均衡的同时,还保证同一用户相关连的访问请求会被分配到同一台服务器上。
会话保持有什么作用呢,举例说明一下
如果有一个用户访问请求被分配到服务器A,并且在服务器A登录了,并且在很短的时间,这个用户又发出了一个请求,如果没有会话保持功能的话,这个用户的请求很有可能会被分配到服务器B去,这个时候在服务器B上是没有登录的,所以你要重新登录,但是用户并不知道自己的请求被分配到了哪里,用户的感觉就是登录了,怎么又要登录,用户体验很不好。
还有你在淘宝上面买东西,从登录=》拍得东西=》添加地址=》付款,这是一个一系列的过程,也可以理解成一次操作过程,所有这一系列的操作过程都应当由一台服务器完成,而不能被负载均衡器分配到不同的服务器上。
会话保持都会有时间的限制(映射到固定某一台的服务器除外,如:ip_hash),各种负载均衡工具都会提供这种会话保持时间的设置,LVS,apache等。连php语言都提供了会话保持时间的设定session.gc_maxlifetime
会话保持时间的设定要大于session生存时间的设定,这样可以减少需要同步session的情况,但是不能杜绝。所以同步session还是要做的。
三,session同步
为什么要进行session同步,说会话保持的时候已经提到了。具体方法请参考web集群时session同步的3种方法
分享到:
相关推荐
解释什么叫负载均衡和会话保持,以及分别列举各种负载均衡的方案,详细讲解会话保持的方案设计。
F5负载均衡会话保持技术及原理技术白皮书.docx
详细讲述了F5是如何保持会话,保持会话的各种方法的讲解。
本文档主要是记录了自己在进行负载均衡及SESSION同步的测试。利用nginx的反向代理做负载均衡,利用sql server数据库做session共享。达到网站集群在负载均衡时,session可以同步。
关于F5的负载均衡的算法以及会话保持的说明
Windows+Nginx+Tomcat做负载均衡同时实现session共享Demo
原创文档,NGINX + TOMCAT 6 + REDIS 实现负载均衡 session会话同步,已亲测
基于tomcat7版本的memcached会话保持,内置tomcat需要的jar包。
内置内存存储,并且他的分布式算法是在客户端完成的,不需要服务器端进行通信,我们当时在做项目的时候因为考虑到项目的高可用性高扩展性,因此在服务器部署方面采用了apache+jk+tomcat这种负载均衡的方式,...
WAS集群负载均衡和会话共享架构的实现,典型的WAS集群部署,配置方案。可作为Http server,WAS Application server,DM相关配置的参考 典型的WAS集群部署,配置方案。可作为Http server,WAS Application server,DM相关...
基于memcached的tomcat7服务器session共享技术,达到了负载均衡的目的!
用haproxy实现RDP会话负载均衡 这篇文章主要针对 thinstation 方案来做测试。
3.2、弘积负载均衡 3.2.1、配置节点(类似F5 poolmembers) 3.2.2、配置定义健康检查 延伸:不同poolmember采用不同健康检查(与F5类似) 目录 3.2.3、配置虚拟服务(类似F5 poolmembers) 3 3.2.4、...
F5 BIG-IP LTM 的官方名称叫做本地流量管理器,可以做4-7层负载均衡,具有负载均衡、应用交换、会话交换、状态监控、智能网络地址转换、通用持续性、响应错误处理、IPv6网关、高级路由、智能端口镜像、SSL加速、智能...
(1) session sticky(贴) 基于hash 和cookie 来实现会话保持,简单的负载均衡算法 基于source_ip(源地址hash) nginx: ip_hash 、 haproxy: source 、 lvs: sh (2) session cluster:delta session manager ...
tomcat负载均衡架构及会话复制集群的实现视频 总共是分三个阶段讲解
应用交换技术的负载均衡算法 应用交换技术里主要包括四项关键的技术: 截获和检查流量 服务器监控健康检查 负载均衡算法 会话保持 截获和检查流量保证只有合适的数据包才能通过; 服务器监控和健康检查随时了解...
F5 BIG-IP LTM 的官方名称叫做本地流量管理器,可以做4-7层负载均衡,具有负载均衡、应用交换、会话交换、状态监控、智能网络地址转换、通用持续性、响应错误处理、IPv6网关、高级路由、智能端口镜像、SSL加速、智能...
使用redis共享tomcat会话,使其达到服务器负载均衡等目的。tomcat下conf的content.xml中工具jar配置路径类中,在tomcat-redis-session-manager-1.2-tomcat-7-java-7.jar中找
Haproxy实现企业级服务器的负载均衡