大型网站架构系列:负载均衡详解(1)(转)

news/2024/5/15 19:59:42/文章来源:https://blog.csdn.net/weixin_33750452/article/details/94482319

面对大量用户访问、高并发请求,海量数据,可以使用高性能的服务器、大型数据库,存储设备,高性能Web服务器,采用高效率的编程语言比如(Go,Scala)等,当单机容量达到极限时,我们需要考虑业务拆分和分布式部署,来解决大型网站访问量大,并发量高,海量数据的问题。

从单机网站到分布式网站,很重要的区别是业务拆分和分布式部署,将应用拆分后,部署到不同的机器上,实现大规模分布式系统。分布式和业务拆分解决了,从集中到分布的问题,但是每个部署的独立业务还存在单点的问题和访问统一入口问题,为解决单点故障,我们可以采取冗余的方式。将相同的应用部署到多台机器上。解决访问统一入口问题,我们可以在集群前面增加负载均衡设备,实现流量分发。

负载均衡(Load Balance),意思是将负载(工作任务,访问请求)进行平衡、分摊到多个操作单元(服务器,组件)上进行执行。是解决高性能,单点故障(高可用),扩展性(水平伸缩)的终极解决方案。

本文是负载均衡详解的第一篇文章,介绍负载均衡的原理,负载均衡分类(DNS负载均衡,HTTP负载均衡,IP负载均衡,链路层负载均衡,混合型P负载均衡)。部分内容摘自读书笔记。

本次分享大纲

  1. 负载均衡原理
  2. DNS负载均衡
  3. HTTP负载均衡
  4. IP负载均衡
  5. 链路层负载均衡
  6. 混合型P负载均衡

一、负载均衡原理

系统的扩展可分为纵向(垂直)扩展和横向(水平)扩展。纵向扩展,是从单机的角度通过增加硬件处理能力,比如CPU处理能力,内存容量,磁盘等方面,实现服务器处理能力的提升,不能满足大型分布式系统(网站),大流量,高并发,海量数据的问题。因此需要采用横向扩展的方式,通过添加机器来满足大型网站服务的处理能力。比如:一台机器不能满足,则增加两台或者多台机器,共同承担访问压力。这就是典型的集群和负载均衡架构:如下图:

  • 应用集群:将同一应用部署到多台机器上,组成处理集群,接收负载均衡设备分发的请求,进行处理,并返回相应数据。
  • 负载均衡设备:将用户访问的请求,根据负载均衡算法,分发到集群中的一台处理服务器。(一种把网络请求分散到一个服务器集群中的可用服务器上去的设备)

 负载均衡的作用(解决的问题):

1.解决并发压力,提高应用处理性能(增加吞吐量,加强网络处理能力);

2.提供故障转移,实现高可用;

3.通过添加或减少服务器数量,提供网站伸缩性(扩展性);

4.安全防护;(负载均衡设备上做一些过滤,黑白名单等处理)

二、负载均衡分类

根据实现技术不同,可分为DNS负载均衡,HTTP负载均衡,IP负载均衡,链路层负载均衡等。

2.1DNS负载均衡

最早的负载均衡技术,利用域名解析实现负载均衡,在DNS服务器,配置多个A记录,这些A记录对应的服务器构成集群。大型网站总是部分使用DNS解析,作为第一级负载均衡。如下图:

优点

  1. 使用简单:负载均衡工作,交给DNS服务器处理,省掉了负载均衡服务器维护的麻烦
  2. 提高性能:可以支持基于地址的域名解析,解析成距离用户最近的服务器地址,可以加快访问速度,改善性能;

缺点

  1. 可用性差:DNS解析是多级解析,新增/修改DNS后,解析时间较长;解析过程中,用户访问网站将失败;
  2. 扩展性低:DNS负载均衡的控制权在域名商那里,无法对其做更多的改善和扩展;
  3. 维护性差:也不能反映服务器的当前运行状态;支持的算法少;不能区分服务器的差异(不能根据系统与服务的状态来判断负载)

 实践建议

将DNS作为第一级负载均衡,A记录对应着内部负载均衡的IP地址,通过内部负载均衡将请求分发到真实的Web服务器上。一般用于互联网公司,复杂的业务系统不合适使用。如下图:

1.3  IP负载均衡

在网络层通过修改请求目标地址进行负载均衡。

用户请求数据包,到达负载均衡服务器后,负载均衡服务器在操作系统内核进程获取网络数据包,根据负载均衡算法得到一台真实服务器地址,然后将请求目的地址修改为,获得的真实ip地址,不需要经过用户进程处理。

真实服务器处理完成后,响应数据包回到负载均衡服务器,负载均衡服务器,再将数据包源地址修改为自身的ip地址,发送给用户浏览器。如下图:

IP负载均衡,真实物理服务器返回给负载均衡服务器,存在两种方式:(1)负载均衡服务器在修改目的ip地址的同时修改源地址。将数据包源地址设为自身盘,即源地址转换(snat)。(2)将负载均衡服务器同时作为真实物理服务器集群的网关服务器。

 优点:

(1)在内核进程完成数据分发,比在应用层分发性能更好;

缺点:

(2)所有请求响应都需要经过负载均衡服务器,集群最大吞吐量受限于负载均衡服务器网卡带宽;

2.4链路层负载均衡

在通信协议的数据链路层修改mac地址,进行负载均衡。

数据分发时,不修改ip地址,指修改目标mac地址,配置真实物理服务器集群所有机器虚拟ip和负载均衡服务器ip地址一致,达到不修改数据包的源地址和目标地址,进行数据分发的目的。

实际处理服务器ip和数据请求目的ip一致,不需要经过负载均衡服务器进行地址转换,可将响应数据包直接返回给用户浏览器,避免负载均衡服务器网卡带宽成为瓶颈。也称为直接路由模式(DR模式)。如下图:

优点:性能好;

缺点:配置复杂;

实践建议:DR模式是目前使用最广泛的一种负载均衡方式。

2.5混合型负载均衡

由于多个服务器群内硬件设备、各自的规模、提供的服务等的差异,可以考虑给每个服务器群采用最合适的负载均衡方式,然后又在这多个服务器群间再一次负载均衡或群集起来以一个整体向外界提供服务(即把这多个服务器群当做一个新的服务器群),从而达到最佳的性能。将这种方式称之为混合型负载均衡。

此种方式有时也用于单台均衡设备的性能不能满足大量连接请求的情况下。是目前大型互联网公司,普遍使用的方式。

方式一,如下图:

以上模式适合有动静分离的场景,反向代理服务器(集群)可以起到缓存和动态请求分发的作用,当时静态资源缓存在代理服务器时,则直接返回到浏览器。如果动态页面则请求后面的应用负载均衡(应用集群)。

方式二,如下图:

以上模式,适合动态请求场景。

因混合模式,可以根据具体场景,灵活搭配各种方式,以上两种方式仅供参考。

转载于:https://www.cnblogs.com/NetPig/p/9915892.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.luyixian.cn/news_show_738765.aspx

如若内容造成侵权/违法违规/事实不符,请联系dt猫网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

搜索关键词分析——以个人博客网站为例

背景 我做了一个个人博客网站,希望能够记录自己的学习,工作和成长笔记。同时为更多有相同需求的人提供帮助和支持。那么用户应该怎么来找到我这个博客网站呢?通过什么关键词能够快速找到这个博客网站呢? 接下来本文就来探讨一下关…

基于python的种子搜索网站,你懂得!

该项目是基于python的web类库django开发的一套web网站,给师弟做的毕业设计。本人的研究方向是一项关于搜索的研究项目。在该项目中,笔者开发了一个简单版的搜索网站,实现了对数据库数据的检索和更新。通过开发该项目,笔者学习和巩…

只有登陆注册页需要https加密吗?N网站有必要全站加密吗?

很多人都觉得,HTTPS 可以保护用户的密码等登陆信息,那么其他时候就不需要了。但火狐Firefox浏览器插件Firesheep,证明了这种想法是错的。我们可以看到,其实在一些社交平台,劫持其他人的session是非常容易的。我们以常见…

windwos服务器网站504,打开网站出现504 gateway time-out的原因及解决方法

我们在访问大流量网站或者运营有较多数据的网站时候,偶尔会出现504 GatewayTime-out错误,那么造成504 gateway time-out是什么原因呢?这多是网站服务器配置不当导致的,下面分享一下504 gateway time-out解决方法。1、代码释义504 …

java嵌套其他人网站页面_手把手教你实现Java权限管理系统 前端篇(十五):嵌套外部网页...

嵌套外部网页在有些时候,我们需要在我们的内容栏主区域显示外部网页。如查看服务端提供的SQL监控页面,接口文档页面等。这个时候就要求我们的导航菜单能够解析嵌套网页的URL,并根据URL路由到相应的嵌套组件。接下来我们就讲解具体实现方案。实…

使用Apache JMeter测试网站压力

使用Apache JMeter测试网站压力 一、进入官网下载资源 官网地址:http://jmeter.apache.org/download_jmeter.cgi 提供同版本百度网盘下载: 链接:https://pan.baidu.com/s/1kM3hucZJWwFZpwBFk-2FYA 提取码:0qrf 二、解压资源apach…

centos7 php无法启动服务器,centos7下无法启动ssh服务_网站服务器运行维护,centos7,ssh...

win10文件夹显示一个小一个大怎么办_网站服务器运行维护win10文件夹显示一个小一个大的解决办法:首先进入“我的电脑”,点击上方的“查看”;然后点击界面右边的“选项”;接着在弹出的窗口中选择“查看”;最后选择“应用…

宝塔面板ab模板建站_建站工具篇:在首次建站过程中,我都用到了哪些建站工具?...

工欲善其事,必先利其器。在生活中、在工作中我们经常会使用到一些实用的工具,来帮助我们快速的完成任务,建站也是一样,我们需要利用一些工具来帮助我们快速便捷地搭建网站。下面,跟大家聊聊在建站的过程中我都使用了哪…

速度优化_WordPress网站速度优化指南

使用Wordpress搭建的网站普遍打开速度太慢,针于SEO来讲提升网站打开速度才能获得好的体验。如何提升Wordpress网站打开速度,让WP博客程序实现速度秒开,经过研究实践终于突破了速度这一难题。要提升Wordpress速度需要结合多方面来进行操作&…

java精品课程设计开发_《java语言课程设计》精品课程网站规划和建设.doc

《java语言课程设计》精品课程网站规划和建设.doc 学科类网络工程学号1101010136学校代码13421密级2015届本科生毕业论文JAVA语言程序设计精品课程网站规划与建设学院信息学院专业网络工程姓名宋冬冬指导教师万里勇职称讲师答辩日期二〇一五年四月七日毕业论文诚信声明本人郑重…

2012网站服务器目录磁盘满了,服务器磁盘异常爆满的原因及解决方法

最近经常收到360网站监控发来的邮件,提示网站打不开,原因则无一例外都是磁盘爆满,导致mysql停止工作,删除部分文件后,网站恢复访问,不过过不多久,网站又再次因为磁盘爆满而打不开,在…

linux网站ip访问量查询,如何统计网站每天PV和IP访问量排行

近几天,官网登陆注册页面总是会有人进行账号密码试探,为了观察网站每天一些访问量情况,提早发现问题,特意统计了网站的页面及IP访问量,并将前10名,通过web页面展示出来。1.分析页面和IP访问量排行。#!/bin/…

3D溜溜网站用的是php吗_用完磨砂膏皮肤滑溜溜,但是磨砂膏真的好用吗?

众所周知用完磨砂膏的皮肤摸上去滑滑的,可以让皮肤看上去像抛光了一样,磨砂膏是一种细微颗粒状的清洁皮肤的用品,有去死皮的功效,能够对皮肤深层次的垃圾进行去除,减轻皮肤的负担,但如此超强清洁能力的颗粒…

.net网站 发布到服务器,.netcore 网站发布到Linux服务器

准备Linux服务器一台。安装.netcore sdk。1,添加微软的库到本地源中:rpm -Uvh https://packages.microsoft.com/config/rhel/7/packages-microsoft-prod.rp2,将系统软件更新到最新状态。 更新过程中直接yes就好,然后等待更亲完成。…

在html如何将链接隐藏,网页查看隐藏链接的方法和检测工具(附:网站链接隐藏的方法)...

通常的情况下,网页的链接是不允许被隐藏的,所以在没有必要的情况下,我们通常都不建议做隐藏链接,但是部分黑帽SEO技术员则会将链接隐藏,一来是为了不容易被别人发现,二来可以做到吸引蜘蛛的效果&#xff0c…

不会自动更新了_dedecms自动更新首页,这个方法屡试不爽对SEO优化也很友好

使用dedecms建站,如何自动更新首页呢?默认是将所有的页面生成静态HTML文件,对于详情页和栏目等内页,可以在网站后台设置发布文章后自动更新栏目、上下篇等,但是这个有点问题:就是当你的网站是一个个人站或者…

.net url参数全站加密_网站全站启用HTTPS要如何配置?

网站全站启用HTTPS要如何配置?百度站长平台目前是建议HTTP的网站将协议改造成HTTPS协议,百度搜索引擎也会优先收录HTTPS的网站。主要HTTPS是建立一个信息安全通道,具有加密传输有效保障了用户隐私数据密文传输,截取后也是无法解密…

php使用iframe框架,DedeCMS网站js/jquery操作iframe框架的方法

IFRAME是HTML标签,作用是文档中的文档,或者浮动的框架(FRAME)。iframe元素会创建包含另外一个文档的内联框架(即行内框架)。DedeCMS网站js/jquery操作iframe框架的方法JavaScript代码在父窗口中获取iframe中的元素:格式:window.fr…

使用Apache搭建Web网站服务器

一、Apache服务器概述-安装 1、web服务器概述 web服务器也简称WWW(world wide web 万维网)服务器,主要功能是提供网上信息浏览服务 2、什么是apache? Apache HTTPD Server 简称 Apache,是 Apache 软件基金会的一个开源…

使用varnish为网站加速

一、 varnish概述 Varnish是一款高性能的开源HTTP加速器,挪威最大的在线报纸 Verdens Gang (http://www.vg.no) 使用3台Varnish代替了原来的12台squid,性能居然比以前更好。 Varnish 的作者Poul-Henning Kamp是FreeBSD的内核开发者之一,他认为…