企业级API网关学习总结

网关的产生背景

微服务架构演变

单体架构

所有服务集中在单个项目中,每次部署需要部署整个项目

好处:

  • 部署简单: 由于是完整的结构体,可以直接部署在一个服务器上即可。
  • 技术单一: 项目不需要复杂的技术栈,往往一套熟悉的技术栈就可以完成开发。
  • 用人成本低: 单个程序员可以完成业务接口到数据库的整个流程。

弊端

  • 系统启动慢, 一个进程包含了所有的业务逻辑,涉及到的启动模块过多,导致系统的启动、重启时间周期过长;
  • 系统错误隔离性差、可用性差,任何一个模块的错误均可能造成整个系统的宕机;
  • 扩缩容困难:系统的扩容只能只对这个应用进行扩容,不能做到对某个功能点进行扩容;
  • 线上问题修复周期长:任何一个线上问题修复需要对整个应用系统进行全面升级。
    在这里插入图片描述

分布式架构

将系统进行垂直和横向拆分后分别部署在服务器上

  • 纵向拆分:根据业务分类进行拆分
  • 横向拆分:将拆分后的业务横向部署多个节点,保证服务高可用性

优点

  • 增大系统容量:垂直或是水平拆分业务系统,让其变成一个分布式的架构
  • 加强系统可用:通过分布式架构来冗余系统以消除单点故障,从而提高系统的可用性
    模块重用度高
  • 软件服务模块被拆分,开发和发布速度可以并行而变得更快
  • 系统扩展性更高
  • 团队协作流程改善

弊端

  • 架构设计变得复杂(尤其是其中的分布式事务)
  • 部署单个服务会比较快,但是如果一次部署需要多个服务,流程会变得复杂
  • 系统的吞吐量会变大,但是响应时间会变长
  • 运维复杂度会因为服务变多而变得很复杂
  • 架构复杂导致学习曲线变大
  • 测试和查错的复杂度增大
  • 技术多元化,这会带来维护和运维的复杂度
  • 管理分布式系统中的服务和调度变得困难和复杂

在这里插入图片描述

SOA架构

面向服务即将共用的服务抽取出来做为一个服务供所有系统使用,每个系统不再各自实现
在这里插入图片描述
ESB:是一个集中式的服务总线。通过ESB,可以实现集成业务处理,监控系统间消息流动,管理系统间交互的业务服务。ESB的关注点是集成,核心概念是服务和消息,主要方式是协议适配和中介处理。

微服务

  • 优点:逻辑清晰、简化部署、可扩展、灵活组合,技术异构、高可靠
  • 缺点:复杂度高、运维复杂、影响性能
    在这里插入图片描述

微服务架构产生的原因

微服务架构基于SOA架构演变过来的,在传统的WebService架构中有如下问题:

  • 依赖中心化服务发现机制
  • 使用Soap通讯协议,通常使用XML格式来序列化通讯数据,xml格式非常喜欢重,比较占宽带传输。
  • 服务化管理和治理设施不完善

API网关

capi:对接三方合作平台
iapi:对接内部流量
bapi:对接商家
oapi:对接外部流量

企业级微服务网关

什么是网关

1、流量入口
能聚合所有请求到微服务的流量
2、请求路由
接收进来的请求经过网关策略拦截后,通过负载均衡转发后端服务
3、请求拦截过滤器
在网关进行横切功能:权限校验,限流,监控

为什么需要API网关

在这里插入图片描述

1、采用微服务架构后,一个项目中微服务节点很多
2、在网关层处理所有非业务功能:如负载均衡,鉴权认证,Session处理,安全检查,日志处理,熔断限流等。如果每个服务自己实现,逻辑冗余,难以维护

网管技术选型

在这里插入图片描述

网关解决哪些问题

  • 路由转发:客户端和服务消费方,无需知道请求到下游哪台机器
  • 请求安全:请求签名,Oauth2,鉴权,令牌鉴权
  • 高可用请求:下游服务的高可用依托网关进行负载
  • 资源隔离:资源就是流量,隔离流量
  • 流量灰度:线上灰度部署,可以减小风险。

网关的分类

  • 流量网关:关注稳定和安全
    全局性流量控制
    日志统计
    防止SQK注入
    防止Web攻击
    屏蔽工具扫描
    黑白IP名单
    证书 加解密处理

  • 业务网关:提供更好的服务
    服务级别流控
    服务降级和熔断
    服务与负载均衡,灰度策略
    服务过滤,聚合与发现
    权限验证与用户等级策略
    业务规则与参数检验
    多级缓存策略

目前常见的开元网关大致安语言分类:

  • Nginx+lua:Open Restry、Kong、Orange、Abtesting Gateway等;
  • Java:Zuul/Zuul2 、Spring Cloud Gateway、Kaazing KWG、gravitee、Dromara soul 等
  • Go:Janus、fagongzi、Grpc-Gateway
  • NET:Ocelot
  • Node.js:Express Gateway、MicroGateway。

网关管理平台

功能:
灰度管理:网关灰度 服务灰度
路由管理 令牌分发 服务编排 认证授权 黑白名单 健康检测 指纹证书

为什么需要网关管理平台

痛点

  • 随着业务规模扩大,API接口数据不断增加
  • Apollo配置中心容易出错,可视化效果差
  • 多站点,多环境,多业务场景,网关数量成倍增加

优势

  • 整个生命周期,全部通过配置化,流程化的方式全自助管理,易上手极大的提升研发效率
  • 所有API都可以集中一起管理,通过切换站点,集群就可以相应操作,方便问题定位查询
  • 路由发布支持网关节点选择性发布,Apollo支持较弱
  • 对网关做Mock测试,方便功能点扩展
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值