常用的几种负载均衡技术

  单机服务器的性能上限终究是有极限的,如果并发量大到单机无法承受的地步,我们很自然的会想到用服务器集群的方式来分散压力,但是从用户的角度上来看,他们并不会知道服务器集群的存在。对于他们来说,访问一个服务器集群还是一个单机服务器并没有区别,都是在浏览器输入同样的网址。这是因为用户访问的域名所指向的服务器只是一个代理服务器,它并不处理用户的请求,而是通过某种方法把请求原封不动的发给服务器集群中的某一个服务器,等到请求被处理完之后,服务器又把结果发给这个代理服务器,然后由代理服务器发给用户。而通过在众多真正处理请求的服务器中,选择一个负载最小的来处理新来的请求,这就是负载均衡技术的实质。

以下介绍几种常见的负载均衡的实现方式。

1.http重定向

用户访问的代理服务器通过动态的维护服务器集群中的负载情况选出一个最优的服务器,把它的ip地址通过http报文回送给客户端,即http中的重定向,客户端收到重定向报文以后,再去访问目标的服务器。

这种方法的缺点是产生了额外的访问,而且在负载均衡服务器上也需要做一定的运算,这样让负载均衡服务器很容易就成为整个体系的瓶颈。

2.dns域名解析

客户端访问某个域名之前一定会通过dns解析出相应的ip地址,可以通过在dns服务器上设置一些算法,让它每次返回客户端不同的ip地址,实现负载均衡。

这样做可以简化网站维护人员的工作,因为真正的工作其实是在dns服务器上做的,而且成本低廉,并且对服务器没有地理上的要求。不过缺点是dns服务器并不能获得各个服务器的真实负载,而且由于dns服务器和真实的服务器是没有任何联系的,当某台服务器下线之后,修改dns服务器上的ip地址,在修改生效之前,对这台服务器的访问是无法成功的。

3.反向代理

先来说说什么是代理,比如VPN就是常见的代理服务器,我们开启VPN后再去访问别的网址,我们所生成的请求会先全部发送给vpn服务器,再由vpn服务器去访问我们真正要访问的网址。网址发送信息也是向vpn服务器发送,再由vpn服务器转交给我们。在这期间,外界的服务器是不知道我们的存在的,它会把vpn服务器当成他的客户端,这叫做正向代理。

反向代理

和正向代理相似,只不过是客户端主动去连接服务器的代理服务器,再由代理服务器转发请求给真正的服务器,这期间客户是不知道自己的请求被转发了的,也就是说,客户不知道服务器集群的存在。

反向代理实现负载均衡的优点是实现起来比较简单,我们可以直接在代理服务器上根据负载均衡的方式进行报文转发。

缺点是代理会成为瓶颈,因为将会又它来处理所有的报文接受和发送,还要运行负载均衡算法。

猜你喜欢

转载自blog.csdn.net/qq_33113661/article/details/89180619