您当前的位置:首页 > 电脑百科 > 程序开发 > 架构

大型网站技术架构负载均衡技术介绍

时间:2019-08-20 10:05:14  来源:  作者:

十年间,负载均衡的前沿技术层出不穷,令用户眼花缭乱。经常在技术网站、文档中出现的“四层负载均衡”、“七层负载均衡”字眼有什么含义?有什么区别?对客户网络有哪些不同的优化?

 

在大型的网站服务器集群中,负载均衡技术是必不可少的。使用负载均衡的技术架构,能够有效避免后端服务出现单点故障,提升服务的稳定性。

 

一、负载均衡简介

负载均衡,英文名称为LoadBalance,其意思就是将负载(工作任务)进行平衡,分摊到多个操作单元上进行执行(例如Web服务器、FTP服务器等),实现多个服务器共同完成工作任务的目标。负载均衡建立在现有网络结构之上,它提升了服务器的性能、提高了带宽利用率,增强了网络的灵活性和可靠性。经过十年的发展,负载均衡已经成为网络应用的重要设备,甚至成为大型网络应用的核心设备,与基础路由、交换设备市场并驾齐驱。

负载均衡构建在现有网络结构之上,可以方便有效地扩展服务器资源。通常将大量的并发请求分散至多个节点上分别处理,减少客户端的等待时间;也可以将单个重负载的运算分担到多个节点上做并行处理,最后进行汇总。

 

二、负载均衡的作用

 

大型网站技术架构负载均衡技术介绍及学习资源推荐

 

 

 

2.1、请求分发

请求分发即按照一定的算法将大量的并发请求分散至多个节点的服务器上处理,减轻单台服务器的压力,减少请求响应时间以及提升系统并发量。

 

2.2、故障转移

通过心跳机制检测判断各个服务器的状态,能够自动剔除不可用的服务器并将请求发送可用服务器,减少服务出现不可用的概率,提高可用性。

 

2.3、总的来说

网络负载均衡允许使用相同的群集 IP 地址集指定群集中所有计算机的地址,并且它还为每个主机保留一组唯一专用的 IP 地址。对于负载平衡的应用程序,当主机出现故障或者脱机时,会自动在仍然运行的计算机之间重新分发负载。当计算机意外出现故障或者脱机时,将断开与出现故障或脱机的服务器之间的活动连接。任何一种情况下,都可以在准备好时将脱机计算机明确地重新加入群集,并重新共享群集负载,以便使群集中的其他计算机处理更少的流量。

 

三、负载均衡的分类

大型网站技术架构负载均衡技术介绍及学习资源推荐

 

 

平时我们常用的有四层负载均衡和七层负载均衡,四层的负载均衡是基于IP和端口实现的,七层的负载均衡是在四层的基础上,基于URL等信息实现。

 

3.1、常用于四层负载均衡的软件(还有F5、NetScaler等硬件负载均衡器)有:

LVS:重量级软件,本身不支持正则表达式,部署起来比较麻烦,但是性能高,应用范围广,一般的大型互联网公司都有用到。

HAProxy:轻量级软件,支持的负载均衡策略非常多,较灵活。

Nginx:轻量级软件,支持的协议少(HTTP、HTTPS和Email协议),对于Session支持不友好。

 

3.2、常用于七层负载均衡的软件有:

HAProxy:全面支持七层代理,灵活性高,支持Session会话保持。

Nginx:可以针对HTTP应用进行分流,正则规则灵活,支持高并发,部署简单。

Apache:性能较差,一般不考虑。

MySQL Proxy:官方的数据库中间件,可以实现读写分离,负载均衡等功能,但是对分表分库支持不完善(可选替代品:Atlas,Cobar,TDDL)。

 

四、技术原理

大型网站技术架构负载均衡技术介绍及学习资源推荐

 

 

四层负载均衡类似路由器的转发,通过修改报文中的目标地址和端口,然后直接转发给该服务器,只需要一个TCP连接即可。七层负载均衡通过类似于代理的机制进行转发,负载均衡服务器会分别与客户端和后端的服务器都建立TCP连接。

 

五、应用场景

四层负载均衡一般用于TCP应用中,比如基于C/S架构开发的ERP系统。七层负载均衡大多应用于使用HTTP/HTTPS协议搭建的网站和内部平台系统。

从市场份额来看,七层负载均衡设备还是以国外厂商占据主导地位,国内能够进行自主研发的只有太一星晨等少数的几家厂商。而且,国内负载均衡厂商应用场景以链路负载为主,难以进入占据负载均衡市场70%份额、主导负载均衡技术发展的服务器负载均衡市场,更缺乏在大型数据中心及大型门户网站使用案例。



Tags:负载均衡   点击:()  评论:()
声明:本站部分内容及图片来自互联网,转载是出于传递更多信息之目的,内容观点仅代表作者本人,如有任何标注错误或版权侵犯请与我们联系(Email:2595517585@qq.com),我们将及时更正、删除,谢谢。
▌相关推荐
负载均衡是将客户端请求访问,通过提前约定好的规则转发给各个server。其中有好几个种经典的算法,下面我们用Java实现这几种算法。 轮询算法轮询算法按顺序把每个新的连接请求...【详细内容】
2021-09-27  Tags: 负载均衡  点击:(52)  评论:(0)  加入收藏
什么是NginxNginx(engine x)是一个高性能的HTTP和反向代理服务器,具有内存少,高并发特点强。1、处理静态文件,索引文件以及自动检索打开文件描述符缓冲2、无缓冲的反向代理加速...【详细内容】
2021-09-02  Tags: 负载均衡  点击:(70)  评论:(0)  加入收藏
1.安装依赖环境yum -y install wget gcc-c++ ncurses ncurses-devel cmake make perl bison openssl openssl-devel gcc* libxml2 libxml2-devel curl-devel libjpeg* libpn...【详细内容】
2021-08-03  Tags: 负载均衡  点击:(63)  评论:(0)  加入收藏
域名解析是客户端访问系统的第一步。在架构设计中,DNS Server除了解析域名,还能干点什么呢?又有哪些“挖坑”的用法需要避免呢?典型的互联网架构中,我们通过nginx的反向代理来做...【详细内容】
2021-07-29  Tags: 负载均衡  点击:(264)  评论:(0)  加入收藏
均衡算法也是多种多样,常见的两大类:即静态负载均衡法和动态负载均衡法。静态算法也是比较简单,主要有有一般轮询算法,基于比例的加权轮询算法,以及基于优先级的轮询算法。动态算...【详细内容】
2021-07-27  Tags: 负载均衡  点击:(72)  评论:(0)  加入收藏
今天总结一下负载均衡中LVS与Nginx的区别,好几篇博文一开始就说LVS是单向的,Nginx是双向的,我个人认为这是不准确的,LVS三种模式中,虽然DR模式以及TUN模式只有请求的报文经过Director,但是NAT模式,Real Server回复的...【详细内容】
2021-06-08  Tags: 负载均衡  点击:(114)  评论:(0)  加入收藏
之前有很多朋友问关于 Nginx 的 upstream 模块中 max_fails 及 fail_timeout,这两个指令,分别是配置关于负载均衡过程中,对于上游(后端)服务器的失败尝试次数和不可用时间,很多...【详细内容】
2021-04-15  Tags: 负载均衡  点击:(206)  评论:(0)  加入收藏
需求在Linux SMP(对称多处理器)环境下,每个CPU对应一个run_queue(可执行队列)。如果一个进程处于TASK_RUNNING状态(可执行状态),则它会被加入到其中一个run_queue(且同一时刻仅会被加...【详细内容】
2021-04-01  Tags: 负载均衡  点击:(225)  评论:(0)  加入收藏
分层模型,每一层实现各自的功能和协议,并完成与相邻层的接口通讯。OSI 的服务定义详细说明了各层所提供的服务,某一层的服务就是该层及其下各层的一种能力,通过接口提供给更高一层。各层所提供的服务与这些服务是怎么实现...【详细内容】
2021-03-16  Tags: 负载均衡  点击:(257)  评论:(0)  加入收藏
Nginx的安装及负载均衡配置在安装完分布式文件系统之后,就可以在应用程序中进行调用了。注意需要在 Web端的页面上进行访问,还必须借助Nginx 提供访问服务。使用Nginx 不仅可...【详细内容】
2021-03-11  Tags: 负载均衡  点击:(159)  评论:(0)  加入收藏
▌简易百科推荐
为了构建高并发、高可用的系统架构,压测、容量预估必不可少,在发现系统瓶颈后,需要有针对性地扩容、优化。结合楼主的经验和知识,本文做一个简单的总结,欢迎探讨。1、QPS保障目标...【详细内容】
2021-12-27  大数据架构师    Tags:架构   点击:(5)  评论:(0)  加入收藏
前言 单片机开发中,我们往往首先接触裸机系统,然后到RTOS,那么它们的软件架构是什么?这是我们开发人员必须认真考虑的问题。在实际项目中,首先选择软件架构是非常重要的,接下来我...【详细内容】
2021-12-23  正点原子原子哥    Tags:架构   点击:(7)  评论:(0)  加入收藏
现有数据架构难以支撑现代化应用的实现。 随着云计算产业的快速崛起,带动着各行各业开始自己的基于云的业务创新和信息架构现代化,云计算的可靠性、灵活性、按需计费的高性价...【详细内容】
2021-12-22    CSDN  Tags:数据架构   点击:(10)  评论:(0)  加入收藏
▶ 企业级项目结构封装释义 如果你刚毕业,作为Java新手程序员进入一家企业,拿到代码之后,你有什么感觉呢?如果你没有听过多模块、分布式这类的概念,那么多半会傻眼。为什么一个项...【详细内容】
2021-12-20  蜗牛学苑    Tags:微服务   点击:(9)  评论:(0)  加入收藏
我是一名程序员关注我们吧,我们会多多分享技术和资源。进来的朋友,可以多了解下青锋的产品,已开源多个产品的架构版本。Thymeleaf版(开源)1、采用技术: springboot、layui、Thymel...【详细内容】
2021-12-14  青锋爱编程    Tags:后台架构   点击:(21)  评论:(0)  加入收藏
在了解连接池之前,我们需要对长、短链接建立初步认识。我们都知道,网络通信大部分都是基于TCP/IP协议,数据传输之前,双方通过“三次握手”建立连接,当数据传输完成之后,又通过“四次挥手”释放连接,以下是“三次握手”与“四...【详细内容】
2021-12-14  架构即人生    Tags:连接池   点击:(17)  评论:(0)  加入收藏
随着移动互联网技术的快速发展,在新业务、新领域、新场景的驱动下,基于传统大型机的服务部署方式,不仅难以适应快速增长的业务需求,而且持续耗费高昂的成本,从而使得各大生产厂商...【详细内容】
2021-12-08  架构驿站    Tags:分布式系统   点击:(23)  评论:(0)  加入收藏
本系列为 Netty 学习笔记,本篇介绍总结Java NIO 网络编程。Netty 作为一个异步的、事件驱动的网络应用程序框架,也是基于NIO的客户、服务器端的编程框架。其对 Java NIO 底层...【详细内容】
2021-12-07  大数据架构师    Tags:Netty   点击:(17)  评论:(0)  加入收藏
前面谈过很多关于数字化转型,云原生,微服务方面的文章。虽然自己一直做大集团的SOA集成平台咨询规划和建设项目,但是当前传统企业数字化转型,国产化和自主可控,云原生,微服务是不...【详细内容】
2021-12-06  人月聊IT    Tags:架构   点击:(23)  评论:(0)  加入收藏
微服务看似是完美的解决方案。从理论上来说,微服务提高了开发速度,而且还可以单独扩展应用的某个部分。但实际上,微服务带有一定的隐形成本。我认为,没有亲自动手构建微服务的经历,就无法真正了解其复杂性。...【详细内容】
2021-11-26  GreekDataGuy  CSDN  Tags:单体应用   点击:(35)  评论:(0)  加入收藏
最新更新
栏目热门
栏目头条