网站首页 > 资源文章 正文
在构建大型系统时,负载均衡、反向代理和API网关等概念经常会被提及。尽管这些术语有时可以互换使用,但它们各自承担着不同的职责和角色,对于理解和优化系统的性能至关重要。
负载均衡器
现代高流量网站面临着处理来自大量用户的并发请求的挑战。无论是提供文本、图像、视频还是应用程序数据,满足这些需求都需要大幅提高处理能力,这通常是通过添加更多服务器来实现的。为了最大限度地提高所有服务器的效率,传入的请求需要在它们之间进行分配。这种在一组后端服务器之间分配网络流量的过程称为负载均衡。下图展示了典型的负载均衡环境。
负载均衡是一个专用于负载均衡的软件组件,位于服务器前面。负载均衡有效地管理请求,确保快速服务。如果服务器崩溃,负载均衡会将流量重定向到其他活动服务器。当新服务器加入该组时,负载均衡会自动开始将请求路由到它。
此外,负载均衡可以配置为对注册的后端服务器执行健康检查。这些运行状况检查充当验证后端服务器可用性的测试。
负载均衡的优点
- 在多个服务器之间有效地分配客户端请求或网络负载。
- 通过减轻特定服务器上的负载来缩短响应时间。
- 通过仅将请求定向到在线服务器来确保高可用性和可靠性。
- 通过根据网络要求动态添加或删除服务器来促进可扩展性。
- 能够及早检测故障,从而在不影响其他资源的情况下进行有效管理。
- 提供 SSL 终止,通过处理 SSL 流量解密来减少 Web 服务器上的计算负载。
- 通过额外的保护层增强安全性,保护系统免受分布式拒绝服务 (DDoS) 和其他类型的攻击。
反向代理
反向代理充当客户端和服务器之间的中介。当代理将请求转发到相关服务器时,客户端仅与反向代理交互以到达后端服务器。这种机制隐藏了内部网络中各个服务器的实现细节。如下所示,反向代理位于源服务器前面,并确保没有客户端直接与该源服务器通信。
反向代理经常用于:
- 通过负载均衡进行负载分配。
- 缓存——对于重复的请求,它可以独立响应,无论是部分还是全部。经常访问的内容存储在代理缓存中,减少了从后端获取数据的需要,并为客户端提供更快的响应。
- 安全措施——它提供了实施防病毒或数据包过滤器等控制系统的选项。这些系统位于互联网和专用网络之间,为后端提供额外的保护。
- SSL 终止 — 可将其设置为解密传入请求并加密传出响应,从而释放宝贵的后端资源。
反向代理在 OSI 模型的第 7 层(应用程序层)发挥作用,在 HTTP 级别管理请求和响应。这使他们能够提供高级特性和功能。其中一项功能是 URL 重写、简化复杂的 URL 并增强 SEO。
反向代理的好处
通过实施反向代理,网站或服务可以维护其源服务器 IP 地址的机密性。这增加了一层安全保护,因为攻击者只能将攻击目标指向反向代理。反向代理更安全、资源更丰富,可以增强对网络攻击的防御能力。
API网关
将API 网关视为反向代理的扩展版本。 API网关不仅转发请求,还向客户端隐藏架构中的后端分区。它超越了简单的请求转发,可能参与编排或聚合。这简化了客户端代码并减少了 API 请求/往返次数。此外,客户端不与多个后端交互,而是仅与 API 网关通信。另一方面API网关涉及协议转换,其中 API 网关可以转换协议(例如,XML 到 JSON、gRPC 到 JSON)以促进客户端-服务器集成。 API 网关是解决安全性、可靠性、可扩展性、可观察性和可追溯性等各种基本功能的关键工具。
API网关的主要特点
- 请求路由——将传入请求引导至相关服务。
- API组合——将多个服务组合成一个统一的API。
- 速率限制 - 管理用户在定义的时间内可以向 API 发出的请求量。
- 安全性——包含身份验证和授权等功能。
- 集中管理——提供一个统一的平台来管理我们生态系统内的各个方面。
- 分析和监控——实现全面的分析和跟踪功能。
API网关内部步骤
在下图中,蓝色的块是 HTTP 请求所经历的步骤。黄色块是 API Gateway 在处理 HTTP 请求时提供的其他功能。
- 参数验证 - API 网关检查并验证 HTTP 请求中的属性。
- 允许/拒绝列表 - API 网关判断允许/拒绝列表以进行请求验证。
- 身份验证和授权 - API 网关通过身份提供商验证并授予授权。
- 速率限制 — 执行速率限制规则,超过限制的请求将被拒绝。
- 动态路由和服务发现 - API 网关使用路径匹配将请求定向到相关后端服务。
- 协议转换——API网关将请求转换为合适的协议并将其中继到后端微服务。
- 错误处理 - API 网关管理请求处理期间遇到的任何错误,以确保服务平稳降级。
- 断路 — API 网关结合了断路等弹性模式来识别故障,防止互连服务过载并减轻级联故障。
- 日志记录和监控——API 网关利用 ELK 堆栈 (Elastic-Logstash-Kibana) 等可视化工具,促进日志记录、监控、跟踪和调试。
- 缓存 — API 网关可以选择缓存重复请求的响应,从而增强整体响应能力。
三者之间的主要区别
- API 网关专门负责 API 管理,负载均衡器分配网络流量,反向代理确保安全请求转发。
- 虽然 API 网关和反向代理都可以管理请求路由,但它们的核心目标有所不同。
- 负载均衡器主要在传输层运行,而 API 网关和反向代理在应用层运行。
更多差异如下所示:
总结
- 负载均衡器长分配网络流量,以增强可用性、可扩展性,甚至跨多个服务器的负载分配,通常应用于 Web 应用程序和服务。
- API 网关专注于微服务架构中 API 的管理、安全性和优化。它们的关键作用包括公开、保护和控制对 API 的访问。
- 反向代理在安全性、性能优化和负载平衡方面都有应用。它们经常用于 Web 服务器、缓存解决方案,并作为应用程序交付网络的组成部分。
好了,今天的内容就分享到这里。若这篇文章能给您带来些许帮助或启发,请不吝关注我的头条号,并给予点赞、留言和转发。您的每一次支持,都是我继续创作的最大动力!感谢您的陪伴,期待与您共同成长。
猜你喜欢
- 2024-10-26 关于路由器中设置IP与网关不在同一网段方法的问题
- 2024-10-26 惊呆了,RPC超时设置竟然引发了线上事故!
- 2024-10-26 交换机上的ARP表项安全策略(交换机 arp)
- 2024-10-26 劫匪VS服务器!数据中心宕机的离奇原因
- 2024-10-26 Modbus IO通信错误代码是怎样的?(modbus rtu错误代码)
- 2024-10-26 一次 Netty 代码不健壮导致的大量 CLOSE_WAIT 连接原因分析
- 2024-10-26 汽车勘总线-网关是什么(简述汽车网关的工作原理、作用?)
- 2024-10-26 偶尔打开网页会出现404这种情况 究竟什么是404?
- 2024-10-26 最全的WEB服务端错误码收藏(web服务器配置常见错误)
- 2024-10-26 网络错误这是为什么?(网络错误是什么问题)
你 发表评论:
欢迎- 最近发表
- 标签列表
-
- 电脑显示器花屏 (79)
- 403 forbidden (65)
- linux怎么查看系统版本 (54)
- 补码运算 (63)
- 缓存服务器 (61)
- 定时重启 (59)
- plsql developer (73)
- 对话框打开时命令无法执行 (61)
- excel数据透视表 (72)
- oracle认证 (56)
- 网页不能复制 (84)
- photoshop外挂滤镜 (58)
- 网页无法复制粘贴 (55)
- vmware workstation 7 1 3 (78)
- jdk 64位下载 (65)
- phpstudy 2013 (66)
- 卡通形象生成 (55)
- psd模板免费下载 (67)
- shift (58)
- localhost打不开 (58)
- 检测代理服务器设置 (55)
- frequency (66)
- indesign教程 (55)
- 运行命令大全 (61)
- ping exe (64)
本文暂时没有评论,来添加一个吧(●'◡'●)