应用服务器集群的负载均衡实现思路

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/qq_35603331/article/details/79661892

一.应用服务器集群

服务器集群有很多种类型,其中包括应用型服务器集群,数据型服务器集群。由于两者对数据状态的管理不同,实现思路也不同。应用服务器一般设计成无状态的,这样会对集群提供极大的便利。
二.集群类型

  1. HTTP重定向
    这是最简单的一种集群方式,方法就是设置一台普通应用服务器,负责将收到的Http请求分配给其他应用服务器。在收到请求后,负载均衡服务器首先计算应该处理该请求的服务器的ip地址,然后向浏览器返回302重定向响应,浏览器收到重定向响应后再去向目标服务器发送请求。
    优点:实现简单。
    缺点:实现一次访问需要两次请求,性能比较差,而且重定向服务器本身性能可能成为系统的瓶颈。另外对搜索引擎的排名可能也会受影响。
  2. DNS域名解析负载均衡
    DNS负载均衡较容易实现,只要在同一个域名下注册多个ip地址即可,好处是负载均衡的任务由DNS服务器实现,较为方便,但是由于DNS存在缓存,如果有部分服务器宕机,dns解析的结果一定时间内不会变化,部分请求可能被解析到已经不存在的服务器,而且dns缓存我们很难加以控制。
  3. dns部分负载均衡
    由于dns缓存的存在,完全使用dns做负载均衡不是一个很好的选择。实际应用中可以将dns负载均衡所指向的服务器作为普通负载均衡服务器,最终的请求分配环节由普通负载均衡服务器完成。

  4. 反向代理负载均衡
    利用反向代理服务器做负载均衡的过程,主要是由反向代理服务器将请求转发给与反向代理服务器处于统一内网的应用服务器,最终请求由反向代理服务器返回响应。
    优点:应用服务器不需要外网ip,只有反向代理服务器需要。并且反向代理服务器部署相对简单。
    缺点:所有请求均由代理服务器返回,容易成为整个系统的瓶颈。

  5. ip负载均衡
    实际上是通过修改ip地址完成请求分派,因为浏览器只能接收和请求原地址,目的地址相符的响应,所以最终请求只能由反向代理服务器返回(因为只利用网络层完成请求转发),那么只有两种方式可以选择。一种是转发时修改原地址,待应用服务器处理请求完毕,返回反向代理服务器后再将原地址修改回去,实现SNAT。另一种是转发时不修改原地址,但是反向代理服务器作为应用服务器所在网络的网关,这样也能实现相同的功能。
    优点:直接在内核进程完成请求转发,而不是应用进程,效率更高。
    缺点:所有请求响应都经过代理服务器,导致代理服务器的网卡带宽容易成为性能的瓶颈。
  6. 数据链路层负载均衡
    数据链路层的原理是修改mac地址实现请求转发,而不是ip地址。结构如下:
    数据链路层负载均衡工作原理图
    利用虚拟ip地址,每台应用服务器的ip地址都和负载均衡服务器相同,因此请求可以直接返回,最终由网关服务器发给浏览器,这样负载均衡服务器的网卡带宽就不会成为性能瓶颈。由于各应用服务器的mac地址不同,因此负载负载均衡服务器只要利用负载均衡算法计算出应该修改的ip地址,即可完成请求转发。这也是应用最广的负载均衡手段。
展开阅读全文

没有更多推荐了,返回首页