paint-brush
反向代理——微服务架构的支柱经过@infinity
2,221 讀數
2,221 讀數

反向代理——微服务架构的支柱

经过 Rishabh Agarwal5m2024/01/17
Read on Terminal Reader
Read this story w/o Javascript

太長; 讀書

微服务架构涉及将复杂的应用程序分解为小型的独立应用程序,以便每个应用程序都可以独立扩展和维护。微服务架构的核心是反向代理的概念。反向代理在引导不同微服务之间的流量以及在微服务的多个实例之间分配工作负载方面发挥着关键作用。
featured image - 反向代理——微服务架构的支柱
Rishabh Agarwal HackerNoon profile picture
0-item

微服务架构涉及将复杂的应用程序分解为小型的独立应用程序,以便每个应用程序都可以独立扩展和维护。微服务架构带来了诸多好处,难怪 IT 领域的每个人都转向这种新架构!


微服务架构的核心是反向代理的概念。反向代理在引导不同微服务之间的流量以及在微服务的多个实例之间分配工作负载方面发挥着关键作用。如果没有反向代理,我们今天所理解的微服务架构中复杂的交互网络和负载分配将根本不可行!


让我们深入了解反向代理在微服务设置中的作用!

什么是代理?

代理是位于客户端计算机和互联网之间的服务器。来自客户端计算机的任何流量都会通过代理服务器。对于互联网的其余部分,看起来好像代理服务器正在发起请求。


使用代理服务器的原因有多种。其中一些如下 -

  • 身份屏蔽:使用代理,客户端的真实身份不会泄露给互联网。它可用于访问本来会被阻止/限制客户端的内容。
  • 设置限制:使用某些配置,代理服务器可用于限制客户端对某些内容的访问。
  • 它还增强了安全性

什么是反向代理?

反向代理是位于互联网和后端服务器之间的服务器。任何发往服务器的流量都必须通过反向代理。对于互联网的其余部分,看起来好像反向代理正在处理请求。


一般来说,使用反向代理有几个好处。您可能会发现这里列出了一些。


反向代理的概念为微服务架构注入了活力,使客户端能够通过确定要访问的服务器来导航微服务的动态环境。如果没有这个重要组件,客户将无法有效地驾驭微服务架构的复杂环境。

服务发现🌍

微服务架构中的服务根据负载进行扩展和缩减。这意味着服务的副本可能在应用程序的生命周期内随时出现和消失。反向代理检测服务的服务器并有效地将客户端的流量引导至这些服务器。

负载均衡⚖️

由于服务可能有多个副本正在运行,因此客户端的请求在可用服务器之间正确分布就变得很重要。负载平衡只是这里使用的revere proxy 的另一个功能。反向代理巧妙地在服务的可用副本之间分配负载。

监控🖥️

由于进入我们应用程序的任何请求都会通过反向代理,因此它是监视请求和执行日志记录的好地方。它有助于获得有关系统中存在的服务数量的重要见解。

内部交通🚦

在微服务设置中,反向代理还用于路由集群的内部流量。这对于服务到服务通信的情况特别有用。

缓存💰

缓存是使用反向代理带来的普遍优势。代理服务器可以返回类似查询的缓存结果,从而缩短客户端的响应时间。

聚合 ⛙

单个客户端的请求可能需要来自后端多个服务的响应聚合。这种聚合可以由反向代理执行,为客户端留下一个干净的端点可供使用!

跨层代理

反向代理可以用于不同的配置。这些配置通常规定了做出路由决策的 OSI 层。通常有两种著名的代理 - (1) 第 4 层代理和 (2) 第 7 层代理。当我们向上移动层时,我们从互联网数据包中解码更多可用于路由决策的信息。


OSI 模型中的层

第 4 层代理

OSI 模型中的第 4 层是传输层。从应用程序开发人员的角度来看,第 4 层可用于路由决策的内容包括:

  • 发送请求的客户端IP和端口
  • 接收请求的服务器的IP和端口


因此,第 4 层代理只能根据服务器和客户端的 IP 和端口做出路由决策。它无法查看请求的内容,因此只能做出有限的路由决策。


为什么使用第 4 层代理有几个原因 -

  • 当仅需要数据包级负载平衡时。
  • 出于安全考虑,人们不希望反向代理解密请求。
  • 由于第 4 层代理速度很快,因此需要效率。


第 4 层代理也有几个缺点 -

  • 由于我们处于第 4 级,因此无法进行智能负载平衡
  • 它无法执行真正的微服务负载平衡。

第 7 层代理

OSI 模型中的第 7 层是应用层。从应用程序开发人员的角度来看,第 7 层可用于路由决策的内容包括:

  • 第 4 层可用的所有内容
  • 请求的全部内容,包括标头


由于第 7 层提供了更多用于决策的内容,因此可以执行更智能的路由。


以下是人们使用第 7 层代理的一些原因 -

  • 您需要在反向代理中做出明智的路由决策
  • 你想使用缓存


以下是使用第 7 层代理的一些缺点 -

  • 第 7 层代理通常比第 4 层慢,因为它解密请求并检查其内容以做出路由决策
  • 由于反向代理会检查请求的内容,因此使用第 7 层代理还存在安全问题

反向代理无疑是微服务架构中的重要组成部分之一。没有它,微服务架构的真正好处永远无法完整实现。


至此,我们的博客就结束了!我希望你今天学到了一些新东西。