• DevOps


    1 - 由来

    应用编程接口(Application Programming Interface,简称:API),就是软件系统不同组成部分衔接的约定。
    随着 API 的整体趋势发展, 架构也随之变化:从最原始的“传输协议通讯” -> “简单的接口集成” -> “消息中间件” -> “标准 REST”, API 的发展更趋向于简洁, 集成,规范化。

    随着微服务的流行,采用微服务后,所有的服务都变成了一个个细小的API,与之带来了API管理的一些问题:

    • 如何有效地管理服务API?
    • API认证授权如何实现?
    • 如何实现服务的负载均衡,熔断,灰度发布,限流流控?

    在微服务的应用程序中,客户端和微服务之间的交互,也存在着挑战:

    • 微服务提供的 API 粒度通常与客户端的需求不同,微服务一般提供细粒度的 API,也就是说客户端需要与多个服务进行交互。
    • 不同的客户端需要不同的数据,不同类型客户端的网络性能不同。
    • 服务的划分可能会随时间而变化,因此需要对客户端隐藏细节。

    API 网关作为微服务整体架构的重要组件,针对性地解决了如何合理地治理服务API的问题。
    抽象了微服务中都需要的公共功能,同时提供了客户端负载均衡,服务自动熔断,灰度发布,统一认证,限流流控,日志统计等丰富的功能。

    2 - 定义与特征

    • 是一个服务器,是系统的唯一入口
    • 封装了系统内部架构,所有的客户端和消费端都通过统一的网关接入微服务,在网关层处理所有的非业务功能
    • 为每个客户端提供REST/HTTP方式访问的定制API
    • 服务端通过API-Gateway注册和管理服务
    • 承担身份验证、监控、负载均衡、缓存、流控、反向代理、健康检查等其它职责

    更多的功能

    • 对接Prometheus、Zipkin等统计、监控组件
    • 对接Auth0、okta等身份认证提供商
    • 支持多云和混合云的架构,与云厂商无关,动态地切换和分发

    3 - 一些优点

    API Gateway做为系统统一入口,实现了对各个微服务间的整合,同时又做到了对客户端友好,屏蔽系统的复杂性和差异性,让 API请求更安全、更高效的得到处理。

    1. 可以与微服务注册中心连接,实现微服务无感知动态扩容。
    2. 对于无法访问的服务,可以做到自动熔断,无需人工参与。
    3. 可以方便的实现蓝绿部署,金丝雀发布或A/B发布。
    4. 做为系统统一入口,可以将各个微服务公共功能放在API Gateway中实现,以尽可能减少各服务的职责。
    5. 帮助实现客户端的负载均衡策略。
    6. 云原生友好,架构轻巧,便于容器化

    4 - 全生命周期管理

    API 的全生命周期管理:除了反向代理、负载均衡、限流限速的插件外,还包括了 API 的设计、文档以及测试等,也就是说,从项目设计到测试上线,所有的东西都在整个 API 网关的功能范畴内。

    5 - 对比


    闭源的商业API网关产品,功能都很完善,覆盖了API的设计、多语言SDK、文档、测试和发布等全生命周期管理,并且提供SaaS服务,有些还与公有云做了集成,使用起来非常方便。
    但同时也存在“平台锁定”和无法二次开发的问题。
    因为一旦使用了“闭源”的方案,就很难平滑和低成本地迁移到其他平台,并且只能依靠厂商来定制开发需求。
    因此一般的选型原则:云原生友好的、高性能的、开源的 API 网关。

    6 - 参考信息

  • 相关阅读:
    五子棋项目
    判断是否是素数
    双链表
    九九乘法表
    栈和队列
    c排序
    蓝桥杯 接水问题 模拟
    蓝桥杯 调和数列问题
    蓝桥杯 Hanoi问题 递归
    蓝桥杯 排列问题
  • 原文地址:https://www.cnblogs.com/anliven/p/13688410.html
Copyright © 2020-2023  润新知