繁体   English   中英

API 网关如何工作?

[英]How do API Gateways work?

API 网关如何工作? API网关的典型组件有哪些? 是否有关于他们如何管理安全性、呼叫记录和治理的通用标准?

这是一个非常广泛的问题,因为有很多不同类型的网关(和管理解决方案)。 从广义上讲,网关是 Web 堆栈(由您或第三方托管)中某处的过滤器,它以某种方式过滤 API 流量。 一些过滤可能会发生:

  • 如果您在 CDN 到达您的服务器之前使用它,则在 CDN 中。
  • 在由第三方托管的代理中,您可以通过它重定向流量。
  • 在您自己的云或本地基础架构中运行代理软件(第三方、开源或内部)的专用机器中。
  • 在将流量用于主要处理之前,在应用程序堆栈的特定部分中。

通常,网关可能提供的功能类型可能包括:访问控制(过滤流量,以便只有经过身份验证/授权的流量通过)、速率限制(限制 API 的每个客户端可以发送多少流量)、分析/指标捕获和日志记录(跟踪 API 上发生的事情)、安全过滤(检查传入消息的内容是否受到攻击、重定向/流量路由(根据发件人或请求将流量发送到您自己的基础设施中的不同端点)。

网关通常作为一组模块和过滤器工作,当流量高速流过时处理这些模块和过滤器,您通常可以启用您需要的那些模块/过滤器并控制它们的参数。 显然有很多不同的方法可以实际执行 + 各种供应商和开源系统可供选择。

我会尝试中立地写这篇文章,因为我为 3scale 工作,它提供商业和开源解决方案,但我鼓励您查看各种选项并得出自己的结论:您的主要选择是:

  • 来自ApigeeLayer7等供应商的本地专有网关 - 这些通常是您在数据中心本地安装的硬件或软件设备。
  • 云托管网关,来自Mashery 、Apigee 和WSO2 API Cloud等供应商,它们有效地将 API 流量重定向到他们的服务器以发挥作用。
  • 插件/代理架构,如3scale (我供职),它提供的软件模块可以在应用程序内部部署,在开源代理网关(如Varnish )内部部署,也可以连接到 CDN。
  • APIAXLEWSO2等开源解决方案可以部署在本地或云端。

不同的方法有不同的作用,这取决于您的目标。 在 3scale,我们显然对我们的方法有偏见,因为它允许您在堆栈的几乎任何地方插入过滤代理 - 但毫无疑问,每个供应商都会有他们的观点!

API Gateway 的概念通过类比更容易(对我而言)理解。 如果您想到办公楼前面的接待台,它基本上可以路由呼叫、阻止意外访客并确保包裹到达正确的地方。

这正是 API 网关在分布式应用程序中的作用。 它接受请求并将它们重定向到正确的服务。 放入图像中,这是它的外观。

什么是 API 网关?

基本上,它是您的微服务和不同客户端请求(浏览器、应用程序等)之间的接待台。 至于它们如何工作,组件是什么等等,完全取决于实现和需求。 一些 API 网关处理身份验证和授权,其他处理和验证输入数据,或转换响应。 有些提供监控信息,有些提供全部。

如果您正在寻找更多技术响应,Steve 提供了有关构成此类层的不同组件的详细信息。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM