企业级API网关的设计

作者: GhostStories | 来源:发表于2017-09-20 09:55 被阅读195次

    欢迎访问我的博客查看原文:http://wangnan.tech

    背景

    是出现在系统边界上的一个面向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特性

    原文:https://mp.weixin.qq.com/s/RuN5RfQfksQZRPACloqHEg

    欢迎关注我的微信订阅号:



    欢迎关注我的开发者头条独家号搜索:269166

    相关文章

      网友评论

        本文标题:企业级API网关的设计

        本文链接:https://www.haomeiwen.com/subject/jumnsxtx.html