企业级API网关的设计

                                       企业级API网关的设计

Table table of Contents

  1. 背景

  2. 作用

    1. 隔离

    2. 解耦

    3. 脚手架

  3. 带来的好处

    1. 企业级API网关需要具备的条件

    2. 企业环境下,API网关需要考虑哪些要素

  4. 业界常用的API网关方案

  5. 如何设计一个好的企业级API网关产品

    1. 网关的高性能设计

  6. 网关的高可用设计

背景

是出现在系统边界上的一个面向API的、串行集中式的强管控服务

API网关的流行,源于近几年来,移动应用与企业间互联需求的兴起。移动应用、企业互联,使得后台服务支持的对象,从以前单一的Web应用,扩展到多种使用场景,且每种使用场景对后台服务的要求都不尽相同。这不仅增加了后台服务的响应量,还增加了后台服务的复杂性。随着微服务架构概念的提出,API网关成为了微服务架构的一个标配组件。

作用

  • 第一类作用是隔离作用,作为企业系统边界,隔离外网系统与内网系统。

  • 第二类作用是解耦作用,通过解耦,使得微服务系统的各方能够独立、自由、高效、灵活地调整,而不用担心给其他方面带来影响。

  • 第三类作用是脚手架作用,提供了一个地点,方便通过扩展机制对请求进行一系列加工和处理。

隔离

API网关部署在防火墙外面,起到一层挡板作用,内部系统只接受API网关转发过来的请求。网关通过白名单或校验规则,对访问进行了初步的过滤。相比防火墙,这种软件实现的过滤规则,更加动态灵活。

解耦

有了API网关这一层,可以很好的解耦各方的相互依赖关系,让各方更加专注自己的目标。

  • 解耦功能与非功能

  • 解耦客户端与服务提供者

  • 网关层是否需要实现服务的编排? no

脚手架

网关层除了请求的路由、转发外,还需要负责安全、鉴权、限流、监控等。这些功能的实现方式,往往随着业务的变化不断调整。

带来的好处

  • 网关层对外部和内部进行了隔离,保障了后台服务的安全性。

  • 对外访问控制由网络层面转换成了运维层面,减少变更的流程和错误成本

  • 减少客户端与服务的耦合,服务可以独立发展。通过网关层来做映射。

  • 通过网关层聚合,减少外部访问的频次,提升访问效率。

  • 节约后端服务开发成本,减少上线风险。

  • 为服务熔断,灰度发布,线上测试提供简单方案。

  • 便于扩展。

企业级API网关需要具备的条件

应对大量的对外访问,另一方面,还要给对内的服务提供一定的安全保障。

除此之外,企业提供的API服务多种多样,API网关要能够对这些API的全生命周期进行便捷的管理,例如服务发布、调整、下架、计费、监控等。

企业环境下,API网关需要考虑哪些要素

  1. 安全性问题

  2. 性能问题

  3. 高可用问题

  4. 扩展性问题

  5. API高效运维的问题

  6. API全生命周期管理的问题

业界常用的API网关方案

  • Nginx+ Lua

  • SpringCloud Zuul

  • MashapeKong

如何设计一个好的企业级API网关产品

API 生命周期管理功能
开发和使用支持功能
安全防护功能
流量控制功能
请求管理功能
API交易功能

网关的高性能设计

网关的高性能设计->事件驱动的并发模型(nio)

网关的高可用设计

1、无状态设计原则
2、优雅下线原则
3、Slow start特性


自研企业级API网关是指企业自主研发的用于管理和保护内部服务的API网关。它具有高稳定性、高性能和易于维护等特点。作为所有业务系统API流量的统一入口,自研API网关承担着重要的数据传输和多协议转换工作。它可以对服务进行路由和数据转发,并成为前后端交互以及内外网交互的唯一数据进出口。自研API网关适用于服务鉴权、数据缓存、流量控制、日志记录、熔断控制、协议转换等功能。通过自研API网关,企业可以简化应用服务的开发和发布过程,同时提供安全认证、流量控制、日志审计和IP黑白名单等功能,保护内部服务的安全性和可靠性。\[1\]\[2\]\[3\] #### 引用[.reference_title] - *1* [企业级API网关API流量的统一入口](https://blog.csdn.net/RestCloud/article/details/120912345)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insertT0,239^v3^insert_chatgpt"}} ] [.reference_item] - *2* *3* [如何构建一个可用的企业级API网关?](https://blog.csdn.net/wowotuo/article/details/88672675)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insertT0,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值