Dns 负载均衡器和API网关混淆

Dns 负载均衡器和API网关混淆,dns,load-balancing,distributed-system,api-gateway,system-design,Dns,Load Balancing,Distributed System,Api Gateway,System Design,我一直致力于移动技术,现在我进入后端系统,更具体地说是系统设计。对于api网关和负载平衡器的角色,我经常遇到相互冲突的语句。Google只返回了六个相同的结果,这些结果主要集中在一些著名服务提供的负载均衡器或api网关服务的实现上。我将在这里列出我面临的所有困惑,希望有人能澄清所有这些困惑 有时,我会发现API网关是与客户端设备通信的单点。另一方面,一些地方提到“请求被发送到负载平衡器,负载平衡器将请求平均地分布在服务器上”。那么什么是正确的呢?API网关接收请求还是负载平衡器 其他地方,当我用

我一直致力于移动技术,现在我进入后端系统,更具体地说是系统设计。对于api网关和负载平衡器的角色,我经常遇到相互冲突的语句。Google只返回了六个相同的结果,这些结果主要集中在一些著名服务提供的负载均衡器或api网关服务的实现上。我将在这里列出我面临的所有困惑,希望有人能澄清所有这些困惑

有时,我会发现API网关是与客户端设备通信的单点。另一方面,一些地方提到“请求被发送到负载平衡器,负载平衡器将请求平均地分布在服务器上”。那么什么是正确的呢?API网关接收请求还是负载平衡器

其他地方,当我用谷歌搜索这个话题时,说这两个完全不同。我知道API网关做了很多事情,比如SSL终止、日志记录、节流、验证等,但它也做负载平衡。那么,API网关本身就是一个负载平衡器,还承担着其他职责

在本主题中,我想了解负载平衡器是在同一集群的服务器之间还是在不同的数据中心或集群之间分配负载?那么API网关呢

什么是api网关特有的,以至于默认情况下它是微服务体系结构的选择?API网关托管在哪里?DNS将域名解析为负载平衡器或api网关


很明显,我完全糊涂了。如果问题是正确的,那么在哪些系统中,负载平衡器比API网关更有好处。

API网关和负载平衡器是两种不同的东西

负载均衡器->它是一个在协议或套接字级别(如tcp、http或端口3306等)工作的软件。它的工作是通过使用各种逻辑(如循环)将传入流量分配到目标来平衡传入流量。 我不提供授权检查、请求认证等功能

鉴于

API网关->它是由各种托管公司提供的托管服务,用于管理API操作,以无缝扩展API基础设施。 它负责访问控制、响应缓存、响应类型、授权、身份验证、请求限制、数据处理、根据自定义规则识别正确的目的地,以及无缝扩展后端。 默认情况下,一般管理的API网关带有可伸缩的infra,所以将它们放在负载平衡器后面可能没有意义

关于解析域,DNS很可能总是解析到负载平衡器,intern从API网关服务获取响应

DNS->负载平衡器->API网关->后端服务


希望我能解释并澄清您的困惑。

API网关主要负责API管理,并提供各种其他关键功能,如IAM(身份和访问管理)、速率限制、断路器。因此,它主要消除了为每个微服务实现安全、缓存、节流和监控等功能的API特定代码的需要。微服务通常在API网关的帮助下公开REST API,以便在前端、其他微服务和第三方应用程序中使用

但是,通常情况下,API管理不包括负载平衡功能,因此应将其与负载平衡器结合使用以实现相同的功能

在基于Azure的系统架构中,有一个Azure Application Gateway,它是一个运行在第7层上的负载平衡器,在使用基于HTTP请求的附加属性或流量内容的路由决策路由流量方面,它提供了比传统负载平衡器(第4层)更多的功能。这也可以称为应用程序负载平衡器。它应与Azure API管理(API网关)一起使用。Azure有一个用于在DNS级别运行的流量管理器,它使用DNS根据流量路由方法和端点的运行状况将客户端请求定向到最合适的服务端点。Traffic manager还使用在DNS级别配置的规则,并支持负载在多个区域和数据中心上的数据分布。在每个区域或数据中心内,应具有与负载平衡器耦合的应用网关,以便应用网关有助于确定要从中获取响应的应用服务器,负载平衡器有助于负载平衡

基于Azure的系统概述:

以下是一些相关参考资料:

  • Azure应用程序网关-

  • Azure负载平衡器-

  • Azure流量管理器-

  • 场景架构-