释放双眼,带上耳机,听听看~!
一台服务器的处理能力,主要受限于服务器自身的可扩展硬件能力。
所以,在需要处理大量用户请求的时候,通常都会引入负载均衡器,将多台普通服务器组成一个系统,来完成高并发的请求处理任务。
为了助大家掌握好负载均衡,这节课我会重点讲解以下5点:
1.负载均衡的作用
2.负载均衡的算法
3.负载均衡的实现
4.负载均衡的方案
5.亿级负载怎么做
负载均衡的作用
1.提高吞吐量
解决并发压力,提高应用处理性能(增加吞吐量)。
2.实现高可用
提供供故障转移,实现高可用。
3.扩展性
通过添加或减少服务器数量,提供网站伸缩性(扩展性)。
4.安全防护
负载均衡设备上做一些过滤,黑白名单等处理。
负载均衡的算法
1.轮循
轮询很容易实现,将请求按顺序轮流分配到后台服务器上,均衡的对待每一台服务器,而不关心服务器实际的连接数和当前的系统负载。
适合场景:适合于应用服务器硬件都相同的情况。
2.加权轮循
在轮询的基础上根据硬件配置不同,按权重分发到不同的服务器。
适合场景:跟配置高、负载低的机器分配更高的权重,使其能处理更多的请求,而性能低、负载高的机器,配置较低的权重,让其处理较少的请求。
3.随机
通过系统随机函数,根据后台服务器列表的大小值来随机选取其中一台进行访问。
随着调用量的增大,客户端的请求可以被均匀地分派到所有的后端服务器上,其实际效果越来越接近于平均分配流量到后台的每一台服务器,也就是轮询法的效果。
4.最少连接
记录每个服务器正在处理的请求数,把新的请求分发到最少连接的服务器上,因为要维护内部状态不推荐。
5.源地址散列
根据服务消费者请求客户端的IP地址,通过哈希函数计算得到一个哈希值,将此哈希值和服务器列表的大小进行取模运算,得到的结果便是要访问的服务器地址的序号。
适合场景:根据请求的来源IP进行hash计算,同一IP地址的客户端,当后端服务器列表不变时,它每次都会映射到同一台后端服务器进行访问。
负载均衡的实现