热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

阿里P8架构师谈:负载均衡的原理、分类、实现架构,以及用场景

为什么需要负载均衡当系统面临大量使用户访问,负载过高的时候,通常会用添加服务器数量来进行横向扩展,用集群和负载均衡提高整个系统的解决能力。从单机网站到分布式网站,很重要的区别是业务
阿里P8架构师谈:负载均衡的原理、分类、实现架构,以及用场景

为什么需要负载均衡

当系统面临大量使用户访问,负载过高的时候,通常会用添加服务器数量来进行横向扩展,用集群和负载均衡提高整个系统的解决能力。

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

负载均衡的原理

系统的扩展可分为纵向(垂直)扩展和横向(水平)扩展。

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

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

阿里P8架构师谈:负载均衡的原理、分类、实现架构,以及用场景

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

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

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

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

4.安全防护;(负载均衡设施上做少量过滤,黑白名单等解决)

负载均衡的分类
阿里P8架构师谈:负载均衡的原理、分类、实现架构,以及用场景

1)二层负载均衡(mac)

根据OSI模型分的二层负载,一般是使用虚拟mac地址方式,外部对虚拟MAC地址请求,负载均衡接收后分配后台实际的MAC地址响应)

2)三层负载均衡(ip)

一般采使用虚拟IP地址方式,外部对虚拟的ip地址请求,负载均衡接收后分配后台实际的IP地址响应)

3)四层负载均衡(tcp)

在三次负载均衡的基础上,使用ip+port接收请求,再转发到对应的机器。

4)七层负载均衡(http)

根据虚拟的url或者IP,主机名接收请求,再转向相应的解决服务器。

最常见的四层和七层负载均衡

1)四层的负载均衡就是基于IP+端口的负载均衡:在三层负载均衡的基础上,通过发布三层的IP地址(VIP),而后加四层的端口号,来决定哪些流量需要做负载均衡。

对应的负载均衡器称为四层交换机(L4 switch),主要分析IP层及TCP/UDP层,实现四层负载均衡。此种负载均衡器不了解应使用协议(如HTTP/FTP/MySQL等等)。

实现四层负载均衡的软件有:

  • F5:硬件负载均衡器,功能很好,但是成本很高。
  • lvs:重量级的四层负载软件
  • nginx:轻量级的四层负载软件,带缓存功能,正则表达式较灵活
  • haproxy:模拟四层转发,较灵活

2)七层的负载均衡就是基于虚拟的URL或者主机IP的负载均衡

对应的负载均衡器称为七层交换机(L7 switch),除了支持四层负载均衡以外,还有分析应使用层的信息,如HTTP协议URI或者COOKIE信息,实现七层负载均衡。此种负载均衡器能了解应使用协议。

实现七层负载均衡的软件有:

  • haproxy:天生负载均衡技能,全面支持七层代理商,会话保持,标记,路径转移;
  • nginx:只在http协议和mail协议上功能比较好,性能与haproxy差不多;
  • apache:功能较差
  • Mysql proxy:功能尚可。

总的来说,一般是lvs做4层负载;nginx做7层负载;haproxy比较灵活,4层和7层负载均衡都能做。

负载均衡应使用场景
阿里P8架构师谈:负载均衡的原理、分类、实现架构,以及用场景

场景一:应使用于高访问量的业务

假如您的应使用访问量很高,您可以通过配置监听规则将流量分发到不同的服务器上。

场景二:横向扩张系统

您可以根据业务发展的需要,通过随时增加和移除服务器,来扩展应使用系统的服务能力,适使用于各种Web服务器和App服务器。

场景三:消除单点故障

当其中一部分服务器发生故障后,负载均衡会自动屏蔽故障的服务器,将请求分发给正常运行的服务器,保证应使用系统仍能正常工作。

场景四:同城容灾 (多可使用区容灾)

为了提供更加稳固可靠的负载均衡服务,当主可使用区出现机房故障或者不可使用时,负载均衡依然有能力在非常短的时间内切换到另外一个备可使用区恢复服务能力;当主可使用区恢复时,负载均衡同样会自动切换到主可使用区提供服务,保证服务仍然正常运行。

阿里P8架构师谈:负载均衡的原理、分类、实现架构,以及用场景


推荐阅读
  • 秒建一个后台管理系统?用这5个开源免费的Java项目就够了
    秒建一个后台管理系统?用这5个开源免费的Java项目就够了 ... [详细]
  • 西北工业大学作为陕西省三所985和211高校之一,虽然在农业和林业领域不如某些顶尖院校,但在航空航天领域的实力尤为突出。该校的计算机科学专业在科研和教学方面也具有显著优势,是考研的理想选择。 ... [详细]
  • 利用ZFS和Gluster实现分布式存储系统的高效迁移与应用
    本文探讨了在Ubuntu 18.04系统中利用ZFS和Gluster文件系统实现分布式存储系统的高效迁移与应用。通过详细的技术分析和实践案例,展示了这两种文件系统在数据迁移、高可用性和性能优化方面的优势,为分布式存储系统的部署和管理提供了宝贵的参考。 ... [详细]
  • TCP三次握手过程详解与图示解析
    本文详细解析了TCP三次握手的过程,并通过图示清晰展示了各个状态的变化。同时,文章还介绍了四次挥手的图解,解释了在TIME_WAIT状态中,客户端最后一次发送的ACK包的作用和重要性。 ... [详细]
  • 在《PHP应用性能优化实战指南:从理论到实践的全面解析》一文中,作者分享了一次实际的PHP应用优化经验。文章回顾了先前进行的一次优化项目,指出即使系统运行时间较长后出现的各种问题和性能瓶颈,通过采用一些通用的优化策略仍然能够有效解决。文中不仅详细阐述了优化的具体步骤和方法,还结合实例分析了优化前后的性能对比,为读者提供了宝贵的参考和借鉴。 ... [详细]
  • 负载均衡基础概念与技术解析
    随着互联网应用的不断扩展,用户流量激增,业务复杂度显著提升,单一服务器已难以应对日益增长的负载需求。负载均衡技术应运而生,通过将请求合理分配到多个服务器,有效提高系统的可用性和响应速度。本文将深入探讨负载均衡的基本概念和技术原理,分析其在现代互联网架构中的重要性及应用场景。 ... [详细]
  • 本文深入探讨了IO复用技术的原理与实现,重点分析了其在解决C10K问题中的关键作用。IO复用技术允许单个进程同时管理多个IO对象,如文件、套接字和管道等,通过系统调用如`select`、`poll`和`epoll`,高效地处理大量并发连接。文章详细介绍了这些技术的工作机制,并结合实际案例,展示了它们在高并发场景下的应用效果。 ... [详细]
  • 兆芯X86 CPU架构的演进与现状(国产CPU系列)
    本文详细介绍了兆芯X86 CPU架构的发展历程,从公司成立背景到关键技术授权,再到具体芯片架构的演进,全面解析了兆芯在国产CPU领域的贡献与挑战。 ... [详细]
  • 华为捐赠欧拉操作系统,承诺不推商用版
    华为近日宣布将欧拉开源操作系统捐赠给开放原子开源基金会,并承诺不会推出欧拉的商用发行版。此举旨在推动欧拉和鸿蒙操作系统的全场景融合与生态发展。 ... [详细]
  • javax.mail.search.BodyTerm.matchPart()方法的使用及代码示例 ... [详细]
  • Spark与HBase结合处理大规模流量数据结构设计
    本文将详细介绍如何利用Spark和HBase进行大规模流量数据的分析与处理,包括数据结构的设计和优化方法。 ... [详细]
  • 2016-2017学年《网络安全实战》第三次作业
    2016-2017学年《网络安全实战》第三次作业总结了教材中关于网络信息收集技术的内容。本章主要探讨了网络踩点、网络扫描和网络查点三个关键步骤。其中,网络踩点旨在通过公开渠道收集目标信息,为后续的安全测试奠定基础,而不涉及实际的入侵行为。 ... [详细]
  • 修复一个 Bug 竟耗时两天?真的有那么复杂吗?
    修复一个 Bug 竟然耗费了两天时间?这背后究竟隐藏着怎样的复杂性?本文将深入探讨这个看似简单的 Bug 为何会如此棘手,从代码层面剖析问题根源,并分享解决过程中遇到的技术挑战和心得。 ... [详细]
  • 深入解析OSI七层架构与TCP/IP协议体系
    本文详细探讨了OSI七层模型(Open System Interconnection,开放系统互连)及其与TCP/IP协议体系的关系。OSI模型将网络通信过程划分为七个层次,每个层次负责不同的功能,从物理层到应用层逐步实现数据传输和处理。通过对比分析,本文揭示了OSI模型与TCP/IP协议在结构和功能上的异同,为理解现代网络通信提供了全面的视角。 ... [详细]
  • 本文详细介绍了HDFS的基础知识及其数据读写机制。首先,文章阐述了HDFS的架构,包括其核心组件及其角色和功能。特别地,对NameNode进行了深入解析,指出其主要负责在内存中存储元数据、目录结构以及文件块的映射关系,并通过持久化方案确保数据的可靠性和高可用性。此外,还探讨了DataNode的角色及其在数据存储和读取过程中的关键作用。 ... [详细]
author-avatar
000000
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有