当前位置: 首页 > news >正文

分布式常见概念

分布式常见概念

  • 反向代理
    • 正向代理 vs 反向代理(对比理解名称)
    • 正向代理示意(“我去帮你拿数据”)
    • 反向代理示意(“你找我,我替你联系内部服务器”)
    • 为什么叫“反向”?
  • API网关
    • 一、为什么需要 API 网关?
    • 二、API 网关的核心功能
    • 三、工作流程示意图(简化):
    • 四、常见的 API 网关实现
    • 五、举例说明
  • 负载均衡(Load Balancing)
    • 一、负载均衡的作用
    • 二、负载均衡的分类
    • 三、DNS 负载均衡(基于域名系统)
    • 四、硬件负载均衡(如 F5、Citrix、H3C)
    • 五、软件负载均衡(运行在普通服务器或容器中)
    • 六、对比总结表
    • 七、常见负载均衡工具和平台
    • 八、实际部署组合建议
    • 九、典型应用场景

反向代理

“反向代理”(Reverse Proxy)之所以叫“反向”,是相对于“正向代理”(Forward Proxy)而言的。我们先理解“正向代理”,然后对比就能明白“反向代理”名字的来源。


正向代理 vs 反向代理(对比理解名称)

代理类型客户端视角服务端视角功能方向(代理谁)示例用途
正向代理代理客户端服务端不知道真实客户端代理客户端向服务器发请求科学上网、访问被屏蔽网站
反向代理客户端不知道真实服务器代理服务器接收请求代理服务器代理真实服务器负载均衡、隐藏源站、加速网站

正向代理示意(“我去帮你拿数据”)

  • 用户(客户端)配置一个代理服务器。
  • 用户的请求先发给代理服务器,由代理代替用户向目标网站发起请求。
  • 代理收到响应后,再返回给用户。

📌 特点:客户端知道自己用的是代理,服务器不知道谁是原始请求者。


反向代理示意(“你找我,我替你联系内部服务器”)

  • 用户访问网站,请求发给一个代理服务器。
  • 代理服务器决定将请求转发给哪个后端服务器(真实源站)。
  • 用户不直接接触后端服务器,只与代理打交道。

📌 特点:客户端不知道后端服务器的存在,感觉就像访问的是反向代理本身。


为什么叫“反向”?

  • 在正向代理中,客户端知道代理存在并主动使用它,代理代表“客户端”去访问外部世界。
  • 在反向代理中,客户端无感知,代理是服务器部署的“防线”,代表“服务器”处理外部请求。

所以,“反向代理”这个名字强调的是方向变了:

正向代理是 客户端→代理→服务器
反向代理是 客户端→代理(看似服务器)→真实服务器


如果你还想知道反向代理和负载均衡、防火墙等功能模块的细节关系,我可以进一步展开。是否需要?

API网关

API 网关(API Gateway)是一个位于客户端与一组后端服务之间的服务器,作为所有客户端请求的唯一入口点。它的主要作用是接收客户端的 API 请求,路由到合适的后端服务,聚合结果,并返回给客户端。


一、为什么需要 API 网关?

在现代微服务架构中,一个系统通常由多个小的服务组成。如果客户端直接访问每个服务,会带来以下问题:

  • 客户端需要维护多个服务的地址和通信逻辑;
  • 每个服务可能有不同的认证、限流、安全要求;
  • 请求可能需要访问多个服务来聚合数据,客户端需要承担复杂逻辑;
  • 服务迁移或重构时客户端容易受到影响。

API 网关解决了这些问题。


二、API 网关的核心功能

功能描述
路由请求根据 URL 或请求内容,把请求转发给相应的后端服务
请求聚合聚合多个服务的响应,形成一个统一的返回结果
身份验证与授权在统一入口进行用户身份认证(如 OAuth、JWT)、权限检查等
日志与监控记录访问日志、请求耗时、错误信息,便于监控和调试
限流与熔断控制请求频率,防止系统过载,提升系统稳定性
协议转换如 HTTP 转 gRPC,或 SOAP 转 REST
缓存对一些频繁访问的数据进行缓存,提升响应速度
CORS处理统一处理跨域资源共享(Cross-Origin Resource Sharing)问题

三、工作流程示意图(简化):

客户端|v
[ API 网关 ]|    \|     ---> 微服务 A|     ---> 微服务 B|     ---> 微服务 Cv返回聚合结果

四、常见的 API 网关实现

名称特点
Nginx可作为轻量级 API 网关,需手动编写配置
Kong基于 Nginx,功能强大,支持插件机制
ApigeeGoogle 提供的企业级网关,集成分析、认证等
AWS API Gateway云原生服务,与 AWS 服务集成紧密
Spring Cloud GatewayJava生态,适用于 Spring 微服务架构
ZuulNetflix 开源的旧网关,已逐步被替代

五、举例说明

假设你有三个微服务:

  • 用户服务 /user/info
  • 商品服务 /product/list
  • 订单服务 /order/create

如果没有网关,客户端需要分别请求这三个服务。使用 API 网关后,只需请求统一入口,如:

GET /api/user/info   --> 转发到用户服务
GET /api/product/list --> 转发到商品服务
POST /api/order/create --> 转发到订单服务

当然可以,以下是完整内容的重新编排版,结构更加清晰,从概念、作用,到各类型负载均衡的原理、对比、工具和应用建议,一步步递进:


负载均衡(Load Balancing)

负载均衡是指将来自客户端的请求合理分发到多个后端服务器(或节点)上,以提升系统的可用性、吞吐能力和响应速度,避免单点故障或过载。


一、负载均衡的作用

  1. 提升系统吞吐量:多个服务器并发处理请求,提升整体性能
  2. 提高系统可用性:某台服务器宕机,其它服务器接管请求,保障连续性
  3. 增强可扩展性:可随需扩容或缩容服务器节点
  4. 加快响应速度:流量分配至负载较轻或地理更近的服务器,提升体验

二、负载均衡的分类

按照实现方式和网络层级,常见的负载均衡可分为三类:

分类层级实现位置
DNS 负载均衡L3/L4DNS 服务器
硬件负载均衡L4/L7网络硬件设备(如 F5)
软件负载均衡L4/L7普通服务器或容器中运行的软件

三、DNS 负载均衡(基于域名系统)

DNS 服务器为一个域名配置多个 IP 地址(A 记录),客户端每次解析域名时会得到不同 IP,实现“伪轮询”。

example.com → [192.168.1.1, 192.168.1.2, 192.168.1.3]

✅ 优点:

  • 成本低、实现简单
  • 全球 CDN 常用,可结合 GeoDNS 实现地域调度

❌ 缺点:

  • 缓存延迟高(TTL 问题)
  • 无法判断服务器健康状态
  • 不支持权重、会话保持等策略

四、硬件负载均衡(如 F5、Citrix、H3C)

使用专用硬件设备,将外部流量按特定策略转发到后端服务器,通常支持:

  • L4:基于 IP+端口 的 TCP/UDP 分发
  • L7:基于 HTTP 的 URI、Host、Header、Cookie 等转发

✅ 优点:

  • 高性能、高吞吐、超低延迟
  • 支持高级安全功能、DDoS 防护、SSL 卸载等
  • 适合大型企业、金融系统等核心业务

❌ 缺点:

  • 成本昂贵,维护复杂
  • 扩展性差,不易集成到云原生架构中

五、软件负载均衡(运行在普通服务器或容器中)

通过通用软件(如 Nginx、HAProxy、Envoy、Traefik)处理和转发流量,可作为独立组件运行或嵌入微服务体系。

🔥 常见软件对比:

软件特点
Nginx高性能反向代理,支持 TCP/UDP,配置简单,静态场景优先
HAProxy专业级负载均衡器,稳定性强,支持丰富策略和健康检查
Envoy云原生友好,支持 gRPC、服务发现、熔断、链路追踪等
Traefik动态配置,适用于 K8s 和 Docker 等容器编排环境

✅ 优点:

  • 支持动态服务发现,配置灵活
  • 适配微服务与云环境,自动路由、自动注册
  • 支持复杂的 L4/L7 策略(如权重、Header 路由等)

❌ 缺点:

  • 高并发下需调优
  • 依赖宿主资源,性能略逊硬件方案

六、对比总结表

类型网络层级成本灵活性健康检查缓存延迟适用场景
DNS 负载均衡L3/L4❌ 无简单服务分发、CDN 地域分流
硬件负载均衡L4/L7✅ 支持金融、政企、大型数据中心入口流量管控
软件负载均衡L4/L7低 ~ 中✅ 支持微服务架构、云原生环境、Kubernetes 集群

七、常见负载均衡工具和平台

工具/平台类型说明
Nginx软件轻量级,支持静态资源代理、反向代理等
HAProxy软件高可靠、性能优异,适用于金融、电商、高并发系统
Envoy软件服务网格核心组件,支持动态发现、gRPC、指标采集等
Traefik软件云原生场景中首选,自动配置、支持热更新
F5 BIG-IP硬件企业级设备,支持 SSL 卸载、会话保持等高级特性
LVS(Linux Virtual Server)内核模块高性能,内核态转发,适合高吞吐部署
Kubernetes Ingress云原生组件集群服务访问入口,支持基于域名/路径的转发规则

八、实际部署组合建议

现代架构常采用多种负载均衡方式的组合部署,以兼顾性能、灵活性和高可用:

  • DNS + 软件负载均衡:DNS 将请求解析至多个 Nginx/HAProxy 节点,再由其进行转发
  • 硬件负载均衡 + 云原生集群:使用 F5 作为集群入口,内部通过 Ingress 控制器管理流量
  • 服务网格(如 Istio + Envoy):实现微服务间的透明通信与负载均衡,配合流控、链路追踪等能力

九、典型应用场景

  • 网站访问分发:均匀调度用户请求至多台 Web 服务器,缓解热点
  • 微服务调用控制:服务间调用通过 Envoy、Traefik 等实现自动路由与容错
  • 高可用集群容灾:自动剔除宕机节点,保障业务连续性和用户体验

相关文章:

  • GO中常见并发模式总结
  • 佰力博科技与您谈谈高温介电温谱仪如何保养
  • Python-ArcGIS蒸散发组分解析与GPP估算技术
  • 从中控屏看HMI设计的安全与美学博弈
  • Mac 每日磁盘写入量异常高
  • Linux 安装 Remmina
  • ubuntu 24 下使用pip 时碰到Externally Managed Environment Error的解决办法
  • Qt 多线程环境下的全局变量管理与密码安全
  • 当UI设计师遇上数字孪生:如何用设计思维重构工业流程?
  • 优秘AI短视频数字人6月功能更新预告:新增多个AIGC热门功能,智能体和知识库再升级
  • mysql安装教程--笔记
  • PXC集群
  • 判断手机屏幕上的横向滑动(左滑和右滑)
  • Elasticsearch搜索机制与分页优化策略
  • AI应用 Markdown 渲染对比与原生实现方案
  • 基于大模型预测视神经脊髓炎的技术方案大纲
  • 【AUTOSAR】时间保护(Timing Protection)概念、应用与实现源代码解析(下篇)
  • 华为HCIP-Cloud-Service认证H13-821V2.0-002
  • 大模型应用开发第三讲:大模型是Agent的“大脑”,提供通用推理能力(如GPT-4、Claude 3)
  • 记录一ubuntu22.04做开机启动mysql、nginx、redis
  • 哪些网站是动态网站/上海抖音推广
  • 沈阳有资质做网站的公司有哪些/如何自己建立一个网站
  • 低成本门户网站开发/搜索引擎是指什么
  • 陕西建设工程信息网站/关键词优化是什么意思
  • 阿里云中英文网站建设/开网店
  • 交易类网站做支付宝功能/免费b站推广软件