API网关及Gateway 总结

1、API 网关
在微服务架构中,UI 通常连接多个微服务。如果微服务是细粒度的(FaaS) ,那么客户端可能需要连接非常多的微服务,这将变得繁杂和具有挑战性。此外,这些服务包括它们的 API 还将不断进化。大型企业还希望能有其他横切关注点(SSL 终止、身份验证、授权、节流、日志记录等)。
一个解决这些问题的可行方法是使用 API 网关。API 网关位于客户端 APP 和后端微服务之间充当立面,它可以是反向代理,将客户端请求路由到适当的后端微服务。它还支持将客户端请求扇出到多个微服务,然后将响应聚合后返回给客户端。它还支持必要的横切关注点。

优点
◾在前端和后端服务之间提供松耦合。
◾减少客户端和微服务之间的调用次数。
◾通过 SSL 终端、身份验证和授权实现高安全性。
◾集中管理的横切关注点,例如,日志记录和监视、节流、负载平衡。

缺点
◾可能导致微服务架构中的单点故障。
◾额外的网络调用带来的延迟增加。
◾如果不进行扩展,它们很容易成为整个企业应用的瓶颈。
◾额外的维护和开发费用。

何时使用 API 网关
◾在复杂的微服务架构中,它几乎是必须的。
◾在大型企业中,API 网关是中心化安全性和横切关注点的必要工具。
何时不宜使用 API 网关
◾在安全和集中管理不是最优先要素的私人项目或小公司中。
◾如果微服务的数量相当少。

SpringCloud Gateway 使用的 Webflux 中的 reactor-netty 响应式编程组件,底层使用了 Netty 通讯框架
Gateway 用途简要用这个图可以概况

可完成的功能:

  • Route(路由)
  • Predicate(断言)
  • Filter(过滤器)
原文地址:https://www.cnblogs.com/stubborn-dude/p/14707864.html