微服务架构为何需要搭配API网关?

译文
开发 架构
随着以API为核心的IT项目不断增加,API网关与管理层亦愈发普遍。那么,我们是否应当为微服务搭配API网关?如果需要,其又能够带来哪些助益?

【51CTO.com快译】随着以API为核心的IT项目不断增加,API网关与管理层亦愈发普遍。那么,我们是否应当为微服务搭配API网关?如果需要,其又能够带来哪些助益?

API网关是什么?

API网关负责提供一套单一且统一的API入口点,其跨越一个或者多个内部API。其通常亦设定了层速率限制与安全性机制。Tyk.io等API管理层则能够带来更多其它功能,包括分析、货币化以及生命周期管理等等。

基于微服务的架构当中往往包含10到100项甚至更多服务。API网关能够为外部消费方提供一套统一的入口点,且不会受到内部微服务的具体数量与组成的影响。

API网关为微服务带来的助益

避免将内部信息泄露给外部客户

API网关能够将外部公共API与内部微服务API加以区分,使得各项微服务进行添加与边界变更。如此一来,微服务架构就能随时间推移而始终通过重组保护正确大小,且不会对外部绑定客户造成影响。另外,其还能够为全部微服务提供单一入口点,从而避免外部客户进行服务发现及版本控制信息查看。

为微服务添加额外的安全层

API网关能够提供一套额外的保护层,足以应对SQL注入、XML解析攻击以及拒绝服务(简称DoS)攻击等常见威胁因素,从而实现额外的保护层效果。

可支持混合通信协议

由于面向外部的API通常会提供一个基于HTTP或者REST的API,因此内部微服务往往可借此使用多种不同通信协议。此类协议包括ProtoBuf、AMQP或者其它集成有SOAP、JSON-RPC或者XML-RPC的系统。API网关可跨越这些协议提供一个外部统一的基于REST API,允许各团队以此为基础选择最适合内部架构的协议方案。

降低微服务复杂性

微服务拥有多项常规重点,例如利用API令牌进行验证、访问控制以及速率限制等。每一项都会给相关实现服务带来影响,进而延长微服务的开发时间。API网关能够从代码层面移除这些重点,使得大家的微服务能够专注于更为实际的核心任务。

微服务模拟与虚拟化

通过将微服务API与外部API加以区分,大家可以模拟或者虚拟化自己的服务,从而满足设计要求或者配合集成测试。

微服务API网关的弊端

虽然使用API微服务网关好处多多,但其亦存在以下弊端:

  • 整个开发架构由于额外API网关的加入而需要更多编排与管理工作相配合。
  • 必须在开发过程中对路由逻辑配置进行管理,从而确保以合理的路由方式对接外部API与专用微服务。
  • 除非架构本身充分适合高可用性与规模化要求,否则API网关往往会成为一项限制性因素,甚至引发单点故障。

原文标题:Why Do Microservices Need an API Gateway?    原文作者: James Higginbotham

【51CTO译稿,合作站点转载请注明原文译者和出处为51CTO.com】

责任编辑:王雪燕 来源: 51CTO
相关推荐

2023-06-09 14:46:36

2020-12-04 08:34:08

数据分析 数据处理 效率

2013-06-04 09:07:49

OpenStack开源技术开源云计算

2011-08-10 09:56:31

2011-08-11 09:28:48

2015-06-09 11:46:33

物联网5G

2024-04-12 00:00:00

数字化转型企业数字革命

2022-11-02 08:00:00

数据库多区域应用程序云平台

2019-09-24 08:44:09

OpenrestyAPI网关

2020-10-10 10:37:54

微服务架构技术API

2021-04-19 15:26:40

物联网设备管理平台IoT

2021-08-08 14:19:46

网络安全黑客互联网

2019-08-16 08:41:00

微服务架构安全

2023-09-06 08:51:40

2023-09-13 16:43:28

网关微服务架构开发

2017-03-09 19:39:54

微服务架构重构

2016-10-10 22:48:16

2020-08-05 08:23:19

架构Java微服务

2023-01-11 16:22:07

2020-06-04 09:24:26

微服务数据框架
点赞
收藏

51CTO技术栈公众号