为什么API网关推荐微服务?

问题描述 投票:0回答:2

对于微服务,使用常见的设计模式是API网关。我约的实施和影响有点混乱。我的问题/顾虑如下:

  1. 为什么微服务等图案通常不讨论什么问题?如果是这样,那么我错过了出来?
  2. 如果我们部署网关服务器,是不是一个瓶颈?
  3. 是不是网关服务器容易崩溃/故障由于过多的要求在一个点?我相信,负荷会在这一点(和牢记的是Netflix也在做这样的事情)巨大的。纠正我,如果我错了理解。
  4. 流/下载/上传数据(如文件,视频,图片)也将通过与其他中间件服​​务网关服务器?
  5. 为什么我们不能用代理模式,而不是网关?

从我的理解,在一个理想的环境,网关服务器将来自客户机的娱乐性的要求和应对后面的微服务已经完成了任务,由于后。

另外,我一直在寻找春天的云网关。这似乎是我在网关服务器寻找的东西,但它的路由功能混淆了我,如果它只是一个路由(重定向)服务和微服务将是应对客户的直接原因。

microservices netflix-zuul api-gateway spring-cloud-gateway
2个回答
1
投票

在微服务领域的API网关是一个行之有效的模式。它有几个优点e.g:

  • 它封装了一些边缘的功能(如身份验证,授权,路由,监控,...)
  • 它隐藏了所有的微服务,并控制对它们的访问(我不认为,你想你的客户应该能够直接访问你的微服务)。
  • 它可以封装通过您的微服务请求的通信协议(有时该服务可具有协议的混合物内部甚至仅在防火墙内允许的)。
  • 一个API网关还可以提供“API组成”(策划了几项服务呼叫的他们的结果合并成一个)。这不是建议,实现在微服务这样一个组成。
  • 等等

在代理实现所有这些功能是不平凡的。有一对夫妇的API-网关其提供所有这些功能,而更像Netflix的-Zuul,弹簧网关或赤名网关。

此外,为了避免您的API网关从一个瓶颈,您可以:

  • 扩展您的API网关和负载平衡它(如上由Arran_Duff提到)
  • 您的API网关不应为所有的客户单一的一个尺寸适合所有的API。这样做你会在巨大的请求量(或大文件到下/上载)的情况下,肯定会遇到你的问题,3 4。因此,为了缓解这种状况您的Gateway例如可以提供每个客户所提及的问题与客户特定的API(API一个网关实例只供应特定的客户端类型或业务领域..)。这正是Netflix公司做来解决这个问题(见https://medium.com/netflix-techblog/embracing-the-differences-inside-the-netflix-api-redesign-15fd8b3dc49d

0
投票

网关模式用于提供一个单一接口一群不同的微服务的。如果你有多个微服务提供的API的数据,你不希望所有的这些暴露给你的客户。更好的为他们有进入的只是一个点,而不必考虑轮询的数据哪些服务。它也很高兴能够集中常见的处理,例如认证。像任何设计模式,它可以非常漂亮应用于一些解决方案,并为他人不能很好地工作。

如果吞吐量成为一个问题,网关可伸缩性非常大。您可以只需添加更多的网关和负载平衡它们

有代理模式和API网关模式之间存在一些细微的差别。我推荐这篇文章的一个非常简单的解释https://blog.akana.com/api-proxy-or-gateway/

© www.soinside.com 2019 - 2024. All rights reserved.