搜文章
推荐 原创 视频 Java开发 iOS开发 前端开发 JavaScript开发 Android开发 PHP开发 数据库 开发工具 Python开发 Kotlin开发 Ruby开发 .NET开发 服务器运维 开放平台 架构师 大数据 云计算 人工智能 开发语言 其它开发
Lambda在线 > PHP自学中心 > 【总结】你所认识的负载均衡都有哪些?

【总结】你所认识的负载均衡都有哪些?

PHP自学中心 2020-07-01

文章来自:php自学中心

点击加入:









  
    
    
  

视频教程分享

1 四大框架(tplaravelyii2ci3 
公众号里回复:20190229

2 Git&GitHub视频教程
公众号里回复:gitnnnx

3 Vue2.5核心技术源码分析
公众号里回复:19082201

4 Vue实战项目电商管理系统
链接:http://www.mano100.cn/thread-1680-1-1.html

5 uni-app入门到实战 以项目为导向 掌握完整开发流程
链接:http://www.mano100.cn/thread-1681-1-1.html

6 Django高级实战 开发企业级问答网站
链接:http://www.mano100.cn/thread-1682-1-1.html
  
    
    
  
  
    
    
  


精选文章正文

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

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

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

本文将介绍负载均衡的原理,负载均衡分类(DNS负载均衡,HTTP负载均衡,IP负载均衡,链路层负载均衡,混合型P负载均衡)。

一、负载均衡原理

系统的扩展可分为纵向(垂直)扩展和横向(水平)扩展。纵向扩展,是从单机的角度通过增加硬件处理能力,比如CPU处理能力,内存容量,磁盘等方面,实现服务器处理能力的提升,不能满足大型分布式系统(网站),大流量,高并发,海量数据的问题。

因此需要采用横向扩展的方式,通过添加机器来满足大型网站服务的处理能力。比如:一台机器不能满足,则增加两台或者多台机器,共同承担访问压力。这就是典型的集群和负载均衡架构:

如下图:

【总结】你所认识的负载均衡都有哪些?


应用集群:将同一应用部署到多台机器上,组成处理集群,接收负载均衡设备分发的请求,进行处理,并返回相应数据。


负载均衡设备:将用户访问的请求,根据负载均衡算法,分发到集群中的一台处理服务器。(一种把网络请求分散到一个服务器集群中的可用服务器上去的设备)


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

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

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

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

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


二、负载均衡分类

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


2.1DNS负载均衡

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

如下图:

【总结】你所认识的负载均衡都有哪些?

优点

  • 使用简单:负载均衡工作,交给DNS服务器处理,省掉了负载均衡服务器维护的麻烦

缺点

  • 可用性差:DNS解析是多级解析,新增/修改DNS后,解析时间较长;解析过程中,用户访问网站将失败;

  • 扩展性低:DNS负载均衡的控制权在域名商那里,无法对其做更多的改善和扩展;

  • 维护性差:也不能反映服务器的当前运行状态;支持的算法少;不能区分服务器的差异(不能根据系统与服务的状态来判断负载)


实践建议

【总结】你所认识的负载均衡都有哪些?


2.2  IP负载均衡



【总结】你所认识的负载均衡都有哪些?

IP负载均衡,真实物理服务器返回给负载均衡服务器,存在两种方式:

(2)将负载均衡服务器同时作为真实物理服务器集群的网关服务器。

 优点:

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

缺点:

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


2.3链路层负载均衡

【总结】你所认识的负载均衡都有哪些?

优点:性能好;

缺点:配置复杂;

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


2.4混合型负载均衡

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


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

方式一,如下图:

【总结】你所认识的负载均衡都有哪些?

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

方式二,如下图:

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

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




以上是本文的全部内容,希望对大家的学习有帮助,也希望大家多多支持 php自学中心 ,学习与交流少不了一个圈子,点击加技术群:

版权声明:本站内容全部来自于腾讯微信公众号,属第三方自助推荐收录。《【总结】你所认识的负载均衡都有哪些?》的版权归原作者「PHP自学中心」所有,文章言论观点不代表Lambda在线的观点, Lambda在线不承担任何法律责任。如需删除可联系QQ:516101458

文章来源: 阅读原文

相关阅读

关注PHP自学中心微信公众号

PHP自学中心微信公众号:phpCenter

PHP自学中心

手机扫描上方二维码即可关注PHP自学中心微信公众号

PHP自学中心最新文章

精品公众号随机推荐

上一篇 >>

MySQL CPU性能定位