负载均衡
转自:https://blog.csdn.net/zxm1306192988/article/details/80461683
1.概念
实现用户访问调度,压力分担,分给不同的web节点
2.实现方式
(1)硬件设备:F5 A10 Redware
(2)开源软件:Nginx Haproxy Lvs
3.命名
(1)负载均衡:用户请求的转发(Lvs)
(2)反向代理:代替用户去找,找到后再发给用户(Nginx、haproxy)
4.功能
(1)Lvs是4层负载均衡,基于IP和端口
(2)Nginx haproxy 是4层和7层负载均衡,通过IP和端口接收请求再分发
5.原理:
(1)分层负载均衡:都是基于网络模型。四层和七层
(2)七层是基于四层,但在应用层方面可以做更多的事情。
比如按浏览器类别区分是手机还是PC,手机登陆到专门的移动网站。
从智能DNS入手,根据客户端IP将用户转到最近的一台服务器,以加快访问速度
6.开源负载均衡的特点
a.Nginx
(1)七层,针对http分流
(2)安装配置简单
(3)高负载,上万次并发
(4)队请求可以异步处理
(5)调度算法:轮询、weight和ip_hash(解决会话保持)、第三方fair和url_hash
b.HAProxy
(1)七层
(2)支持Session保持,Cookie引导
(3)调度算法:动态加权轮询(Dynamic Round Robin)、加权源地址哈希(Weighted Source Hash)、加权URL哈希、加权参数哈希(Weighted Parameter Hash)
(4)可以对Mysql进行负载均衡
c.LVS
(1)四层。对硬件只有网卡的要求,抗负载能力强
(2)配置性比较低
(3)还可以对Mysql做负载均衡
(4)存在虚拟IP和虚拟MAC地址
分类:
(1)NAT
有两个IP,一个对内,一个对外。在四层上修改报文的IP地址达到均衡。
需维护一个表,防止IP数据包在网络层分片传输给不同的服务器。即,面向连接。
策略:
轮询:一个挨一个轮换
加权轮询:性能服务器好的,权重高
最少连接:那个服务器连接少,就发给谁
加权最少连接:在最少连接的基础上,加权重
缺点:请求响应,所有的流量都要通过它。
(2)DR
请求和响应分开,请求走负载均衡。响应都各个web点直接返回给客户端
(3)双机热备
防止单点失败
Master和Backup需要相同的IP和MAC地址,通过虚拟IP+虚拟MAC解决
7.ELB 和SLB
ELB是AWS的负载均衡器,SLB是阿里云
作用:
(1)请求分发
(2)弹性伸缩
(3)从安全考虑,ELB或SLB支持application在一个VPC中