文章目录

  • 前言
  • 负载分类
  • 软件负载均衡
  • 硬件负载均衡
  • DNS负载均衡
  • 使用套路


前言

负载均衡其实就是任务的分发,使得任务能按照你的预想分配到各个计算单元上,他能提供服务对外的性能,避免单点失效场景,这里要注意的一点是虽说叫负载均衡,但有时候我们的分配算法就不是均衡的。

比如配个nginx,做两台服务器的负载均衡,一台机子比较老是以前的配置比较低,一台是新机子配置高,那我们的分配权重可能就是3-7分,而不是五五开。所以是预想分配。但是业界还是习惯按照负载均衡来表达这个任务分配机制。

负载分类

负载均衡常见的有:软件负载均衡,硬件负载均衡,DNS负载均衡。

软件负载均衡

软件负载均衡是最常见的,大小公司都需要用到它。

软件负载均衡是通过负载均衡功能的软件来实现负载均衡,常见的软件有LVSNginx,HAProxy

软件负载均衡又分四层均衡和七层均衡,四层负载均衡就是在网络层利用IP地址端口进行请求的转发,基本上就是起了个转发分配的作用,而七层负载均衡就是可以根据访问用户的HTTP请求头,URL信息将请求转发到特定的主机。LVS为四层负载均衡。Nginx、HAProxy可四可七。

负载均衡 socks5 负载均衡的三种方式_java

Nginx是万级别的,通常只用它来做七层负载,LVS来做四层负载。LVS是十万级别的,所以如果顶不住常见的也有这样的搭配。

负载均衡 socks5 负载均衡的三种方式_负载均衡_02

  • 软件负载均衡的优点在于便宜而且简单灵活,就买个主机,装一下软件,配置一下就能用了,配置也很简单对于一般小型企业,或者并发量不高的企业来说就够用了。而且在高峰期时容易扩容。
  • 缺点在于(和硬件负载均衡比)性能一般,流量很大的企业就用软件负载均衡顶不住,没防火墙或者防DDos攻击等安全性能。

硬件负载均衡

硬件负载均衡就是用一个硬件一个基础网络设备,类似我们的交换机啊这样的硬件,来实现负载均衡,常见的硬件有F5,A10。

优点就是:

  1. 功能强大,支持全局负载均衡提供全面的负载均衡算法。
  2. 性能强悍,支持百万级并发。
  3. 提供安全功能,例如防火墙,防DDos攻击等。

这么一听我靠这么吊谁不用啊赶紧买个。别急我们下面个图片。这网上找的,价格升序了最低也得15万,高的我看到有90万的。

负载均衡 socks5 负载均衡的三种方式_java_03

缺点:

  1. 贵!这算是它最大的缺点了。为了安全通常还得一主一备,啧啧。
  2. 扩展能力差,当访问量突增的时候超过限度不能动态扩容。

DNS负载均衡

这个负载均衡是通过DNS来的,因为DNS解析同一个域名可以返回不同的IP,所以例如哈尔滨的人访问百度就返回距离他近的那个机房的IP,海南的人访问百度就返回距离他近的那个机房的IP。所以主要是用来实现地理级别的负载均衡。

优点就是:

  1. 简单,交给DNS服务器处理咋们都不用干活。
  2. 因为是就近访问可以减少响应时间,提升访问速度。

缺点就是:

  1. DNS有缓存而且缓存时间较长,所以当机房迁移等需要修改DNS配置的时候,用户可能会访问之前的IP,导致访问失败。
  2. 扩展能力差,因为运营商管理控制的,由不得我们定制或者扩展等。
  3. 比较笨,不能区分服务器之间的差异,也不能反映当前服务器的当前运行状态。

使用套路

DNS负载均衡是地理级别的,硬件负载均衡对应的是集群级别的,软件负载均衡对应的是机器级别的。

负载均衡 socks5 负载均衡的三种方式_java_04

不过一般而言像小公司或者流量不大的公司都是只需要软件负载均衡,也可能LVS都不需要上所以是按实际情况删减上图的一些东西。真正公司发展起来用户量激增才会考虑多机房和上硬件,毕竟是需求的驱使和不差钱了。