本人双非院校菜鸡,自己整理了一些东西,可能存在误解,而且比较浅,
主要写给自己看的,如果大牛们有比较深入的见解麻烦留言

负载均衡的基础
关键词:服务器集群 分担负载 提供相同服务 解决并发访问

软件 章文嵩大牛 lvs
硬件 f5

负载均衡的常用算法:
1.轮询法 Round Rbin
2.随机法 random
3.源地址 hash法
4.加权轮询
5.加权随机法
6.实现请求次数的均衡
7.最小连接数法 动态选择低压连接数最小的当前请求

常见的web负载均衡技术包括:DNS轮询、IP负载均衡和CDN。
其中IP负载均衡可以使用硬件设备或软件方式来实现。

高性能集群:将单个重负载的请求分散到多个节点进行处理,最后再将处理结果进行汇总
高可用集群:提高冗余单元,避免单点故障
负载均衡集群:将大量的并发请求分担到多个处理节点。由于单个处理节点的故障不影响整个服务,负载均衡集群同时也实现了高可用性。

关键原理
要想办法建立某种一对多的映射机制:

具体实现:

1.DNS轮询是最简单的负载均衡方式。

以域名作为访问入口,通过配置多条DNS A记录使得请求可以分配到不同的服务器。
缺陷:DNS轮询没有快速的健康检查机制,而且只支持WRR的调度策略导致负载很难“均衡”,
通常用于要求不高的场景。并且DNS轮询方式直接将服务器的真实地址暴露给用户,不利于服务器安全。

2.IP负载均衡是基于特定的TCP/IP技术实现的负载均衡。

比如NAT、DR、Turning等。是最经常使用的方式。
关于其原理,可以参考下面另一篇文章:lvs中的负载均衡方式。

IP负载均衡可以使用硬件设备,也可以使用软件实现。
硬件设备的主要产品是F5-BIG-IP-GTM(简称F5),
软件产品主要有LVS、HAProxy、NginX。
其中LVS、HAProxy可以工作在4-7层,NginX工作在7层。

硬件负载均衡设备可以将核心部分做成芯片,性能和稳定性更好,
而且商用产品的可管理性、文档和服务都比较好。唯一的问题就是价格。
软件负载均衡通常是开源软件。自由度较高,但学习成本和管理成本会比较大。

3.硬件F5拓展
多链路的负载均衡和冗余
可以接入多条ISP链路,在链路之间实现负载均衡和高可用。

防火墙负载均衡
F5具有异构防火墙的负载均衡与故障自动排除能力。

服务器负载均衡
这是F5最主要的功能,F5可以配置针对所有的对外提供服务的服务器配置Virtual Server实现负载均衡、健康检查、回话保持等。

高可用
F5设备自身的冗余设计能够保证99.999%的正常运行时间,双机F5的故障切换时间为毫秒级。
使用F5可以配置整个集群的链路冗余和服务器冗余,提高可靠的健康检查机制,以保证高可用。

安全性
与防火墙类似,F5采用缺省拒绝策略,可以为任何站点增加额外的安全保护,防御普通网络攻击,
包括DDoS、IP欺骗、SYN攻击、teartop和land攻击、ICMP攻击等。

易于管理
F5提供HTTPS、SSH、Telnet、SNMP等多种管理方式,包含详尽的实时报告和历史纪录报告。同时还提供二次开发包(i-Control)。

其他
F5还提供了SSL加速、软件升级、IP地址过滤、带宽控制等辅助功能。

4.LVS拓展

LVS(Linux Virtual Server, linux虚拟服务器),是章文嵩博士开发的开放软件,目前已经集成到Linux内核中。
基于不同的网络技术,LVS支持多种负载均衡机制。
包括:VS/NAT(基于网络地址转换技术)、VS/TUN(基于IP隧道技术)和VS/DR(基于直接路由技术)。
此外,为了适应不同的需要,淘宝开发了VS/FULLNAT,从本质上来说也是基于网络地址转换技术。
最近还有一个基于VS/FULLNAT的DNAT模块。
不管使用哪种机制,LVS都不直接处理请求,而是将请求转发到后面真正的服务器(Real Server)。
不同的机制,决定了响应包如何返回到客户端。