对负载均衡的全面理解

本文涉及的产品
应用型负载均衡 ALB,每月750个小时 15LCU
网络型负载均衡 NLB,每月750个小时 15LCU
传统型负载均衡 CLB,每月750个小时 15LCU
简介: 对负载均衡的全面理解

微信截图_20230925183611.png

负载均衡服务(LBS)大名入行不多久就一直听闻,后来的工作中,也了解到 软件负载均衡器,如被合入Linux内核的章文嵩的LVS,还有以应用程序形式出现的HAProxy、KeepAlived,以及更熟悉的Nginx 等

也知道价格高昂的硬件负载均衡器如F5,A10 (甚至搬运过报废的F5)

微信截图_20230925183626.png

微信截图_20230925183636.png

微信截图_20230925183644.png

微信截图_20230925183653.png

微信截图_20230925183728.png

但长期以来,也有一些疑惑不解,比如

  • 常说的四层负载均衡是不是就是在传输层实现负载均衡?
  • 四层负载均衡中常听到的三角传输模式IP隧道模式NAT模式,有何区别?哪个性能最好?
  • 四层负载均衡性能好,那为何还有如nginx这样名气更大的七层负载均衡的出现?(Nginx也可以用来做四层代理)
  • 负载均衡与反向代理有何异同?
  • 转发和代理有何本质不同?

这是几年前记的笔记,显然存有谬误。

微信截图_20230925183903.png

计算机网络中常见缩略词翻译及简明释要


通读 凤凰架构--负载均衡一章,可知

  • 四层负载均衡 主要工作在第二层和第三层,即 数据链路层和网络层 (通过改写 MAC 地址IP 地址 实现转发)
  • “三角传输模式”(Direct Server Return,DSR),是作用于 数据链路层负载均衡,也称“单臂模式”(Single Legged Mode)或者“直接路由”(Direct Routing)。 通过修改请求数据帧中的 MAC 目标地址,让用户原本是发送给负载均衡器的请求的数据帧,被二层交换机根据新的 MAC 目标地址转发到服务器集群中对应的服务器(“真实服务器”)的网卡上。 效率高性能好,但有些场景不能满足

微信截图_20230925183919.png

  • 网络层负载均衡:IP隧道模式,NAT模式

IP隧道模式:

微信截图_20230925183958.png

NAT模式:

微信截图_20230925184009.png

在流量压力比较大的时候,NAT 模式的负载均衡会带来较大的性能损失,比起直接路由和 IP 隧道模式,甚至会出现数量级上的下降

  • 四层负载均衡进行转发,只有一条TCP通道; 七层负载均衡只能进行代理,需要有两条TCP通道
  • 微信截图_20230925184040.png
  • 七层负载均衡器就属于反向代理中的一种;
  • 如果只论网络性能,七层均衡器肯定是无论如何比不过四层均衡器的;但其工作在应用层,可以感知应用层通信的具体内容,往往能够做出更明智的决策,玩出更多的花样来。
  • 微信截图_20230925184052.png
  • 负载均衡的两大职责是“选择谁来处理用户请求”和“将用户请求转发过去”。上面讲的都是怎样将用户请求转发过去

至于选择哪台应用服务器来处理用户请求(翻牌子),则有很多算法,如下图就是F5的一些选择算法

微信截图_20230925184129.png

微信截图_20230925184137.png

相关实践学习
每个IT人都想学的“Web应用上云经典架构”实战
本实验从Web应用上云这个最基本的、最普遍的需求出发,帮助IT从业者们通过“阿里云Web应用上云解决方案”,了解一个企业级Web应用上云的常见架构,了解如何构建一个高可用、可扩展的企业级应用架构。
目录
相关文章
|
前端开发 JavaScript C++
打造卓越 QML 层级设计:从入门到精通(一)
打造卓越 QML 层级设计:从入门到精通
3573 1
|
存储 Cloud Native 块存储
EBS深度解析:云原生时代企业级块存储
企业上云的策略,从 Cloud-Hosting 转向 Serverless 架构。块存储作为企业应用上云的核心存储产品,将通过 Serverless 化来加速新的计算范式全面落地。在本话题中,我们将会介绍阿里云块存储企业级能力的创新,深入解析背后的技术细节,分享对未来趋势的判断。
918 3
|
存储 监控 前端开发
如何实现前端框架数据驱动方式的数据加密存储?
实现前端框架数据驱动方式的数据加密存储需要综合考虑多个因素,包括加密算法的选择、密钥管理、传输安全、服务器端处理等。通过合理的设计和实施,能够有效提高数据的安全性,保护用户的隐私和敏感信息。但需要注意的是,前端加密存储不能完全替代后端的安全措施,后端的安全防护仍然是不可或缺的。
341 53
|
存储 自然语言处理 搜索推荐
大模型 Agent 概述
大模型Agent是基于大型预训练模型构建的智能体,具有强大的语言理解和生成能力,能完成多任务处理。其记忆功能包括短期记忆和长期记忆,支持上下文保持、知识积累、计划决策及内容创作,广泛应用于自然语言处理、问答系统、信息检索、辅助决策、教育、创意应用和客服等领域。
1676 0
|
IDE Ubuntu Linux
【CMake保姆级教程】CMake图文安装教程
【CMake保姆级教程】CMake图文安装教程
1122 0
|
机器学习/深度学习 自然语言处理 人机交互
音频基座大模型FunAudioLLM体验评测
一文带你详细了解音频基座大模型FunAudioLLM
2611 5
|
存储 监控 安全
几种确保数据安全的方法:
几种确保数据安全的方法:
770 3
|
存储 运维 Shell
运维.Linux.bash学习笔记.数组及其使用
运维.Linux.bash学习笔记.数组及其使用
259 0
|
存储 Kubernetes Docker
构建高效稳定的Docker容器集群:从原理到实践
【4月更文挑战第19天】 在当今微服务架构盛行的时代,容器化技术已经成为了软件开发和部署的标准实践。本文深入探讨了如何利用Docker容器技术,结合Kubernetes集群管理工具,构建一个高效、稳定且可扩展的容器化环境。文章首先简述了Docker的核心原理及其优势,接着详细阐述了Kubernetes的基本概念与组件,最后通过一个实际案例来指导读者如何从零开始搭建并优化一个基于Docker和Kubernetes的容器集群系统。
400 1
|
Kubernetes 负载均衡 安全
ECI Pod概述
ECI能为Kubernetes提供基础的容器Pod运行环境
560 5