文章插图
本文作者:何建辉(公众号:org_yijiaoqian)
负载均衡的概念1.1 什么是负载均衡Load Balancing,即负载均衡,是一种计算机技术,用来在多个计算机(计算机集群)、网络连接、CPU、磁盘驱动器或其他资源中分配负载,以达到最优化资源使用、最大化吞吐率、最小化响应时间,同时避免过载的目的 。
【负载均衡解析与Nginx实战】简单来说:负载均衡(Load Balance),即是将负载(工作任务、访问请求)进行平衡、分摊到多个操作单元(服务器、组件)上进行指向 。是解决高性能、单点故障(高可用)、扩展性(水平伸缩)的终极解决方案 。
文章插图
1.2 为什么需要负载均衡从我们生活中来看,经常免不了要去一些人多拥挤的地方,比如火车站、电影院、银行等等 。无论是买票还是排队入场,这些场所一般都会设置多个服务窗口或者入口的 。如果没有人引导的话,大多数的情况下,最近的窗口或者入口会被挤满了人,而那些距离较远的窗口或者入口就宽松很多 。
针对上面生活中的情况,实际上很浪费资源,因为如何可以把这些排队的人很好的分散到各个窗口或者入口将会大大缩短排队时间 。那么,对于网站或者系统的建设也是一样的,为了提升网站的服务能力,很多网站都采用了集群部署 。就像电影院有多个入口一样,这时候就需要一个协调者,来均衡的分配这些用户的请求,可以让用户的均匀的分派到不同的服务器上 。
1.3 负载均衡分类我们先回顾一下 OSI 七层模型:OSI 是一个开放性的通信系统互联参考模型,它是一个定义的非常好的协议规范 。OSI 模型有7层结构,每层都可以有几个子层 。OSI 的七层从上到下分别是:
- 7 应用层
- 6 表示层
- 5 会话层
- 4 传输层
- 3 网络层
- 2 数据链路层
- 1 物理层
文章插图
计算机网络相关的概念:了解来网络协议的七层模型以后,再来看看负载均衡 。我们可以很明确的一点是,负载均衡是要在网络中传输做文章的 。而要在网络传输过程中,那么这七层就势必绕不开 。
TELNET、HTTP、FTP、NFS、SMTP、DNS等属于第七层应用层的概念 。
TCP、UDP、SPX等属于第四层传输层的概念 。
IP、IPX等属于第三层网络层的概念 。
ATM、FDDI等属于第二层数据链路层的概念 。
所以,根据负载均衡技术实现在 OSI 七层模型的不同层次,是可以给负载均衡分类的 。
常见的实现方式中,主要可以在应用层、传输层、网络层和数据传输层做文章 。所以,工作在应用层的负载均衡,我们通常称之为七层负载均衡,工作在传输层的我们称之为四层负载均衡 。
大致可以分为以下机制,其中最常用的是四层和七层负载均衡:
二层负载均衡
一般是用 虚拟mac地址 方式 。负载均衡服务器对外提供一个 VIP(虚IP),集群中不通过的机器采用相同 IP 地址,但是机器的 MAC 地址不一样 。当负载均衡服务器接收到请求之后,通过改写报文的目标 MAC 地址的方式将请求转发到目标机器实现负载均衡 。
三层负载均衡
一般是用 虚拟IP地址 方式 。和二层负载均衡类似,负载均衡服务器对外依然提供一个 VIP(虚IP),但是集群中不同的机器采用不同的 IP 地址 。当负载均衡服务器接收请求之后,根据不同的负载均衡算法,通过 IP 将请求转发至不同的真实服务器 。
四层负载均衡
用 虚拟ip + port 方式 。四层负载均衡工作在 OSI 七层模型的传输层,由于在传输层,只有 TCP/UDP协议,这两种协议中除了包含源 IP、目标 IP 以外,还包含源端口号以及目的端口号 。四层负载均衡服务器在接收到客户端请求后,以后通过修改数据包的地址信息(IP + 端口号)将流量转发到应用服务器 。
七层负载均衡
用 虚拟的url 或 主机名 方式 。七层负载均衡工作在 OSI 七层模型的应用层,应用层协议较多,常用http、radius、dns等 。七层负载就可以基于这些协议来负载 。这些应用层协议中会包含很多有意义的内容 。比如同一个 Web 服务器的负载均衡,除来根据 IP + 端口号 进行负载外,还可以根据七层的 URL、浏览器类别、语言 来决定是否进行负载均衡 。
推荐阅读
- 康熙王朝人物关系结构 康熙王朝人物解析
- 九大安化黑茶功效解析,全国第所黑茶学校安化黑茶学校正式挂牌
- 一文全解析——APP版本管理基本知识
- phpStudy nginx 解析漏洞通告
- 解析普洱茶的茶气,大户赛普洱茶
- 九眼天珠的收藏价值解析
- 解析普洱茶年份问题,普洱茶汤色的秘密
- 属兔的性格全面解析
- 老树圆茶持续行情解析,润元昌高性价比老树圆茶新品上市
- 解析如何网购普洱茶,网购成买茶新途径