• 极客专栏正式上线!欢迎访问 https://www.jikewenku.com/topic.html
  • 极客专栏正式上线!欢迎访问 https://www.jikewenku.com/topic.html

企业级API网关的设计

技术杂谈 勤劳的小蚂蚁 3个月前 (02-02) 73次浏览 已收录 0个评论 扫描二维码

 

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特性


丨极客文库, 版权所有丨如未注明 , 均为原创丨
本网站采用知识共享署名-非商业性使用-相同方式共享 3.0 中国大陆许可协议进行授权
转载请注明原文链接:企业级API网关的设计
喜欢 (0)
[247507792@qq.com]
分享 (0)
勤劳的小蚂蚁
关于作者:
温馨提示:本文来源于网络,转载文章皆标明了出处,如果您发现侵权文章,请及时向站长反馈删除。

您必须 登录 才能发表评论!

  • 精品技术教程
  • 编程资源分享
  • 问答交流社区
  • 极客文库知识库

客服QQ


QQ:2248886839


工作时间:09:00-23:00