常见的负载均衡系统包括三种:DNS负载均衡、硬件负载均衡和软件负载均衡。
一、DNS负载均衡
一般用来实现地理级别的均衡。其本质是DNS解析一个域名可以返回不同的IP地址。
DNS负载均衡技术的实现原理是在DNS服务器中为同一个主机名配置多个IP地址,在应答DNS查询时,DNS服务器对每个查询将以DNS文件中主机记录的IP地址按顺序返回不同的解析结果,将客户端的访问引导到不同的机器上去,使得不同的客户端访问不同的服务器,从而达到负载均衡的目的。
优点:简单、成本低;就近访问,提升访问速度;
缺点:1)更新不及时:DNS缓存时间比较长,修改DNS配置后,由于缓存的原因,还是有很多用户会继续访问修改前的IP。
2)扩展性差:控制权在域名商那里,无法根据业务特点会对其做更多的定制化功能和扩展特性。
3)分配策略比较简单。支持的算法少;不能根据系统和服务的状态来判断负载。
二、硬件负载均衡
目前业界典型的硬件负载均衡设备有两款:F5和A10。
优点:功能强大,性能强大,硬件负载均衡可以支持100以上并发。稳定性高、支持安全防护;
缺点:贵。F5和A10相当于“马6”和“宝马、Q7”; 扩展能力差;
用途:常用来实现集群级别的负载均衡。
三、软件负载均衡
通过负载均衡软件来实现负载均衡功能,常见的有Nginx和LVS;
性能:一般Linux服务器上装一个Nginx大概能到5万/秒并发;LVS的性能是十万级~80万/秒;
优点:简单、便宜、灵活;
缺点:性能一般、功能没有硬件负载均衡好么强大、不具有安全防护功能。
用途:常用来实现机器级别的负载均衡。
负载均衡的算法:
1)轮询、:按照顺序轮流分配到服务器上。
2)加权轮询:一般根据服务器硬件配置作为权重考量进行任务分配。
3)负载最低优先:依据连接数、Http请求数、CPU负载、I/O负载来衡量服务器压力。
4)性能最优:
5)Hash算法