首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >微服务网关系列:为什么需要API网关

微服务网关系列:为什么需要API网关

原创
作者头像
AIOPS
发布2023-11-01 19:24:22
3540
发布2023-11-01 19:24:22
举报
文章被收录于专栏:高可用高可用

1、什么是微服务

微服务是指开发应用所用的一种架构形式。具体表现是将大型应用分解成多个独立的服务,以API形式对外提供服务。

在处理一个用户请求时,基于微服务的应用可能会调用许多内部微服务来共同生成其响应。微服务是互联网业务发展的结果,互联网业务的飞速发展导致系统的架构也在不断地发生变化,总体来说,系统的架构大致经历了:单体应用架构—> SOA 架构—>微服务架构的演变。

也有人认为微服务架构不如SOA架构,见仁见智,这里不做讨论

2、微服务带来的问题

采用微服务架构后,最突出的表现是生产环境的服务数量暴涨。我接触的客户,微服务数量少则数百、多则数千,给运维管理带来了很大的影响,主要表现以下两个方面:

2.1 服务互访

一个用户请求,需要多个微服务相互交互。传统的SOA架构,内网的负载均衡器+内网智能DNS即可完成配置,但在成百上千的微服务面前,这种配置方式不能满足业务需要,就需要借助服务发现、容器平台来解决。

2.2 对外提供服务

另一个大问题就是,众多的微服务,对外提供服务,也不能通过传统的负载均衡器来完成,加上不同团队的开发语言,存在不一样的情况,特别是部分接口还需要鉴权,如果鉴权放在每个微服务上面,开发工作量又带来了大幅上涨。

为了解决对外服务的统一性、屏蔽差异,引入了API网关。

当然微服务还有其他一些问题需要解决,比如可观测性、稳定性、微服务治理等,不在本文讨论范围内,暂时不做讨论

3、API网关

3.1 什么是API网关

API网关位于用户和业务系统之间,是用户与服务系统交互的统一入口,对外提供统一的入口供客户端访问,隐藏系统架构实现的细节,让微服务使用更为友好。比如后端程序是多种语言编写的,客户无需理解后端服务,只需要根据系统暴露的接口提供服务即可。

此外,API网关还集成了一些通用特性(如鉴权、限流、熔断),避免每个微服务单独开发,提升效率,使系统更加标准化。这些通用特性包括身份验证、监控、负载均衡、限流、降级与应用检测等功能。

3.2 常见的API网关

云产品

1、 Tencent API Gateway:提供 API 的完整生命周期管理,包括创建、维护、发布、运行、下线等。您可使用 API Gateway 封装自身业务,将您的数据、业务逻辑或功能安全可靠的开放出来,用以实现自身系统集成、以及与合作伙伴的业务连接。

2、 AWS API Gateway:AWS API Gateway是亚马逊云服务(AWS)提供的一种托管式API网关,可以方便地创建、部署和管理API。

3、 Azure API Management:Azure API Management是微软Azure云服务提供的一种托管式API网关,可以帮助开发者轻松地创建、发布、维护和保护API。

开源产品

1. Kong:Kong是一个开源的云原生API网关和服务网格,具有高性能、可扩展性和可定制性。

2. Tyk:Tyk是一个开源的API网关,提供了许多功能,包括API代理、API管理和API监控。

3. Nginx:Nginx是一个高性能的HTTP和反向代理服务器,也可以作为API网关使用,通过配置实现API代理、负载均衡等功能。

4、总结

本文简单分析了微服务的历史、微服务的问题,解释了API网关出现背景及能力。后面本文就以kong网关为例,探查API网关的功能、使用方式,加深对API网关的理解。

对于API网关,我也是刚刚在接触,不当的地方请各位大佬斧正。

我正在参与2023腾讯技术创作特训营第三期有奖征文,组队打卡瓜分大奖!

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 1、什么是微服务
  • 2、微服务带来的问题
    • 2.1 服务互访
      • 2.2 对外提供服务
      • 3、API网关
        • 3.1 什么是API网关
          • 3.2 常见的API网关
          • 4、总结
          相关产品与服务
          负载均衡
          负载均衡(Cloud Load Balancer,CLB)提供安全快捷的流量分发服务,访问流量经由 CLB 可以自动分配到云中的多台后端服务器上,扩展系统的服务能力并消除单点故障。负载均衡支持亿级连接和千万级并发,可轻松应对大流量访问,满足业务需求。
          领券
          问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档