对负载均衡的全面理解


title: 对负载均衡的全面理解 date: 2021-07-10 21:41:24 tags: TCP/IP

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

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

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

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

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

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

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

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

IP隧道模式:

NAT模式:
"

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

  • 四层负载均衡进行 转发 ,只有一条TCP通道; 七层负载均衡只能进行 代理,需要有两条TCP通道
  • 七层负载均衡器就属于反向代理中的一种;
  • 如果只论网络性能,七层均衡器肯定是无论如何比不过四层均衡器的;但其工作在应用层,可以感知应用层通信的具体内容,往往能够做出更明智的决策,玩出更多的花样来。

负载均衡的两大职责是"选择谁来处理用户请求"和"将用户请求转发过去"。上面讲的都是怎样将用户请求转发过去

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

B站:一次性讲清楚四层负载均衡中的NAT模式和IP隧道模式

Shadowsocks源码解读------什么是代理?什么是隧道?

NAT模式、路由模式、桥接模式的区别

VLAN是二层技术还是三层技术?

四层负载均衡详解

本文由mdnice多平台发布

相关推荐
笃行3505 小时前
向量数据库单独建一套,这笔账划不划算
后端
weixin_431600446 小时前
Agent Workflow 学习向:Code 节点,比模板更强的变量加工
后端·python·学习·ai·
Rain的Java大神之路6 小时前
短信接口被狂刷怎么处理
java·运维·后端·web安全·面试·架构·xss
Lost of 程序猿7 小时前
AOP 实战:面向切面编程从理论到落地
后端·asp.net·aop·面向切片变成
Lost of 程序猿7 小时前
ASP.NET Core 认证授权实战:从 JWT 到 Policy,设计一套企业级 RBAC 权限系统
后端·asp.net
Lost of 程序猿7 小时前
ASP.NET Core 后台任务全景:从 BackgroundService 到 Channel 队列,再到分布式调度
后端·asp.net·.netcore
倾颜8 小时前
NestJS 核心概念梳理:从 Module、Controller 到 Guard、Interceptor
后端·node.js·nestjs
东风破_8 小时前
JWT 1:从一个登录请求开始,理解 React 项目里的 API 层与 Mock
前端·后端
东风破_8 小时前
JWT 3:为什么 Token 要放进 Authorization?Axios 拦截器到底解决了什么?
前端·后端
东风破_8 小时前
JWT 5:路由守卫是什么?把整个 JWT 登录鉴权流程串起来
前端·后端