负载均衡的知识点

目录

1.负载均衡是什么

2.负载均衡的分类

客户端负载均衡:

服务端负载均衡:

软件实现:根据OSI模型可以分为四层负载均衡和七层负载均衡        

硬件实现:

附1:客户端和服务端:

附2:OSI四层/七层模型:

3.负载均衡的常见算法

随机法:

轮询法:

一致性Hash法:

最小连接法:

4.服务端的七层负载均衡实现

5.客户端负载均衡的实现


1.负载均衡是什么

概念:将用户请求派分到不同服务器上处理,从而提高系统的并发处理能力

图解:比如应用发送请求,用户登录,登录后被Nginx转发到不同的后端服务器上进行处理

负载均衡的知识点_第1张图片

2.负载均衡的分类

客户端负载均衡:

        客户端自身维护一份服务器地址列表,发送请求之前会根据负载均衡算法选择某一个服务器处理请求

服务端负载均衡:

软件实现:根据OSI模型可以分为四层负载均衡七层负载均衡        

        四层负载均衡:在传输层工作,主要协议是TCP/UDP,负载均衡器会基于数据包中拿到源端口地址和目的端口地址,通过负载均衡算法将数据包转发到后端服务器

        七层负载均衡:在应用层工作,主要协议是HTTP,负载均衡器会读取HTTP报文的数据内容(比如cookie),通过负载均衡算法做出决策

        现在一般使用七层负载均衡算法,使用Nginx实现

硬件实现:

        通过专门的硬件设备实现负载均衡,但硬件设备通常很贵,因此一般用的都是软件负载均衡

附1:客户端和服务端:

客户端:常用的用户端包括了如万维网使用的网页浏览器,收寄电子邮件时的电子邮件客户端,以及即时通讯的客户端软件

服务端:为客户端服务的,服务的内容诸如向客户端提供资源,保存客户端数据

附2:OSI四层/七层模型:

(图片来源于百度百科)

负载均衡的知识点_第2张图片

3.负载均衡的常见算法

随机法:

        未设置权重,则所有服务器被访问的概率相同

        设置权重,则权重高的服务器被访问的概率大

        缺点:由于所有服务器被访问的概率相同,可能有些服务器一直无法被访问到

轮询法:

        未设置权重,则请求按照时间顺序分配到不同的服务器处理(轮询:轮流询问)

        设置权重,则权重高的服务器被访问的次数较多

一致性Hash法:

        相同参数(比如IP)的请求发送到同一台服务器处理

最小连接法:

        选择当前处理的请求数最小的服务器来处理请求,提高服务器的利用率

4.服务端的七层负载均衡实现

DNS解析:

        客户端发送DNS请求到DNS服务器,DNS服务器中存储着多个IP地址,DNS服务器返回给客户端一个IP地址,客户端根据IP地址对应请求不同的服务器,从而实现轮询的负载均衡

反向代理:

        客户端将请求发送给反向代理服务器(比如Nginx),反向代理服务器按照负载均衡策略选择服务器集群中的服务器,从目标服务器获取数据后返回给客户端

5.客户端负载均衡的实现

直接使用负载均衡组件实现:

        比如Java当中负载均衡组件:Spring Cloud Load Balaner

        

你可能感兴趣的:(Java日常学习,负载均衡)