高并发解决方案

来源:互联网 发布:淘宝的购物评级怎么涨 编辑:程序博客网 时间:2024/06/05 11:16

高并发解决方案:负载均衡、集群、静态分离、使用缓存技术、分表分库。


1.高并发:由于网站PV(page view)访问量大,单台服务器承载大量访问所带来的压力.所以利用负载均衡技术、反向代理技术、数据库集群、web服务器集群、Nosql分布式缓存技术等,以实现单台数据器不能达到的并发量。
2.分布式(distributed):将同一程序的不同业务分布在不同的服务器。分布式中的每一个结点都可以做集群,而集群不一定就是分布式的。
3.集群(cluster):用N台服务器构成一个松耦合的多处理器系统(对外来说,他们就是一个服务器),它们之间通过网络实现通信。让N台服务器之间相互协作,共同承载一个网站的请求压力。
4.负载均衡(load balance):根据某种负载策略把请求分发到集群中的每一台服务器上,让整个服务器群来处理网站的请求。
5.高可用(HA): 在集群服务器架构中,当主服务器故障时,备份服务器能够自动接管主服务器的工作,并及时切换过去,以实现对用户的不间断服务。ps:这里我感觉它跟故障转移(failover)是一个意思。
6.正向代理:我们常说的代理也就是只正向代理,正向代理的过程,它隐藏了真实的请求客户端,服务端不知道真实的客户端是谁,客户端请求的服务都被代理服务器代替来请求,某些科学上网工具扮演的就是典型的正向代理角色。用浏览器访问http://www.google.com 时,被残忍的block,于是你可以在国外搭建一台代理服务器,让代理帮我去请求google.com,代理把请求返回的相应结构再返回给我。
7.反向代理:反向代理隐藏了真实的服务端,当我们请求 ww.baidu.com 的时候,就像拨打10086一样,背后可能有成千上万台服务器为我们服务,但具体是哪一台,你不知道,也不需要知道,你只需要知道反向代理服务器是谁就好了,ww.baidu.com 就是我们的反向代理服务器,反向代理服务器会帮我们把请求转发到真实的服务器那里去。Nginx就是性能非常好的反向代理服务器,用来做负载均衡。
8.session复制/共享
在访问系统的会话过程中,用户登录系统后,不管访问系统的任何资源地址都不需要重复登录,这里面servlet容易保存了该用户的会话(session)。如果两个tomcat(A、B)提供集群服务时候,用户在A-tomcat上登录,接下来的请求web服务器根据策略分发到B-tomcat,因为B-tomcat没有保存用户的会话(session)信息,不知道其登录,会跳转到登录界面。
这时候我们需要让B-tomcat也保存有A-tomcat的会话,我们可以使用tomcat的session复制实现或者通过其他手段让session共享。