负载均衡到底是什么,负载均衡结构和流程(图)
负载均衡,英文名Load Balance,作用是将操作分摊到多个执行单元上执行。随着如今网络流量的不断增大,服务的负载均衡是必须的,这里就来讲一讲负载均衡的结构。
说到负载均衡,同学最容易想到的可能就是nginx了,但是nginx只是其中的一层,而负载均衡从我们发送一个请求时可能就开始了,下面是一个负载均衡流程:
从用户发起一个请求,从DNS分流,到中间的反向代理,再到应用服务的分流等,经历了一层有一层,达到了服务水平拓展的目的,以应对目前庞大的数据流量。
DNS分流
DNS功能即指域名系统,在万维网中,我们访问他人服务,即是访问他人ip,但是ip不便于记忆,此时域名系统就出现了。通过域名与ip的相互映射,我们可以不用记忆ip,而是通过域名去访问目标服务,而DNS系统即是一个域名与ip地址相互映射的分布式数据库,我们访问域名是,经历了以下步骤:
域名与ip之间有映射关系,但是大多数情况下却不是一一对应的,我们可以将多个ip映射到同一个域名,因为用户是通过域名去进行访问的,具体访问哪个地址,则有DNS
服务器的映射记录和一定的负载均衡算法来决定,用户拿到具体ip后再去访问,而这个过程对用户来说完全是透明的,通过DNS分流完成了第一步的负载均衡:
硬件分流
通过硬件设备,在网络流量进入服务之前进行流量的分流,通过各种策略,分散到不同的服务器。常见的如F5负载均衡器。
四层负载
四层负载主要是指OSI七层模型中,工作在第四次tcp层的负载均衡,主要是通过修改报文中的目标地址和端口,再加上一定的负载均衡策略,选择最终处理的服务器,如lvs。由此可以想到,其实还有二层负载和三层负载,通过虚拟mac地址或者虚拟ip地址来接收请求然后再分流到真实的mac地址或者ip地址。这几种负载方式都是不关心具体的上层协议,只负责修改数据的流向。
七层负载
七层负载也称“内容负载”,是根据具体的应用层内容,更加智能的选择具体内部服务。如更具请求的url信息等,选择具体的应用服务器来进行相应处理,如nginx。
客户端分流
前面的负载均衡除了DNS以外,都有一个点来分发具体的流量,我们称为服务器分流。当用户请求到达了真正的应用服务器以后,请求还会细分,而同一类的请求的服务可能还是集群,例如如今的微服务架构。这时可以使用应用框架来完成服务请求的分流,如dubbo以及springCloud的Ribbon组件等,这些由服务自己决定的分流方式称为客户端分流。
数据层分流
在应用服务器的背后,是数据层,各种缓存以及持久化数据库等。对于到达数据层的请求,我们也可以进行相应的负载均衡处理,如redis的主从读写分离集群、分片集群等,MySQL的主从读写、分区分表分库等。
关于A10
A10作为知名负载均衡、应用交付厂商提供金融、互联网、运营商、政府等各行业的集DNS防火墙\SSL拦截\DDoS attack缓解\应用访问管理等于一体的智能和自动化网络安全解决方案,守护企业网络边界安全,真正实现低成本,高性能.进入网站,助您升级企业安全解决方案。
分享题目:负载均衡到底是什么,负载均衡结构和流程(图)
文章起源:
http://cxhlcq.com/article/jschsc.html