当前位置: 首页 > news >正文

什么是API 网关?为什么要 API网关?

什么是API网关?

  • 定义:API网关是位于客户端和服务器之间的服务器,作为客户端请求进入服务器的唯一入口,转发通信数据。
  • 作用:API网关提供身份验证、安全策略实施、负载平衡、协议转换、服务发现、监控、日志记录、分析和计费、缓存等功能。

API网关的作用详解

  1. 身份验证和安全策略实施:校验HTTP请求参数,设置IP黑白名单,执行速率限制。
  2. 负载平衡和短路:在请求流量过高时,合理分配请求到不同的服务器,防止单点过载。
  3. 协议转换和服务发现:在微服务架构中,将HTTP协议转换为RPC等内部协议,服务发现确保请求正确路由。
  4. 监控、日志记录、分析和计费:跟踪API使用情况、性能指标、错误信息,记录关键事件和状态。
  5. 缓存:提高响应速度,减轻后端服务压力。

典型流程分析

  1. 客户端请求:基于HTTP协议,如REST或GraphQL。
  2. API网关验证:校验请求参数。
  3. IP黑白名单校验:安全策略,允许或拒绝特定IP。
  4. 身份验证和授权
    • 认证:确认请求方身份,如基本认证、令牌认证、OAuth。
    • 授权:确定请求方权限,如角色Based授权、资源Based授权。
  5. 流量控制和限流
    • 流量控制:控制请求频率,如固定窗口计数器、滑动窗口计数器、令牌桶算法。
    • 限流:在超负荷时,将请求放入队列,如漏桶算法。
  6. 匹配后端服务器:根据路径匹配找到合适的服务。
  7. 动态路由:将请求路由到匹配的服务器。
  8. 协议转换:转换请求和响应协议,如HTTP到RPC。

监视和日志记录

  • 监视:实时跟踪系统运行状况、负载、资源使用等。
  • 日志记录:记录请求、响应、错误、安全事件等,便于故障排查和性能分析。

总结

  • API网关是后端服务器的保护层,根据业务规模和基础服务完善程度,实现方式可能不同。
  • 例如,小公司可能使用Nginx作为网关,而大公司可能需要开发专用API网关。

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • AI应用开发前景与目标
  • vitis (eclipse) 的Indexer不能搜索、不能跳转到函数和变量定义和声明不能打开调用层次的解决方法
  • iOS ------RunLoop
  • [Spring] SpringBoot统一功能处理与图书管理系统
  • Rust的运行时多态
  • 打卡第31天------贪心算法
  • 基于深度学习的面部表情分类识别系统
  • 计算机基础(Windows 10+Office 2016)教程 —— 第4章 计算机网络与Internet(下)
  • 水论文如何找创新,优秀者模仿,末尾有例子示范_来自B站水论文的程序猿
  • Python SciPy介绍
  • @antv/x6 利用interacting方法来设置禁止结点移动的方法实现。
  • 《Unity3D高级编程 主程手记》第四章 用户界面(四) UGUI 核心源码
  • ctfshow-web入门-sql注入(web171-web175)
  • 【QT】qss
  • 01 LVS负载均衡群集
  • 《Javascript高级程序设计 (第三版)》第五章 引用类型
  • 【Linux系统编程】快速查找errno错误码信息
  • 【编码】-360实习笔试编程题(二)-2016.03.29
  • E-HPC支持多队列管理和自动伸缩
  • ES6核心特性
  • happypack两次报错的问题
  • jquery ajax学习笔记
  • JS笔记四:作用域、变量(函数)提升
  • JS实现简单的MVC模式开发小游戏
  • k个最大的数及变种小结
  • Netty 框架总结「ChannelHandler 及 EventLoop」
  • Spring Cloud(3) - 服务治理: Spring Cloud Eureka
  • 阿里研究院入选中国企业智库系统影响力榜
  • 线性表及其算法(java实现)
  • d²y/dx²; 偏导数问题 请问f1 f2是什么意思
  • kubernetes资源对象--ingress
  • 如何正确理解,内页权重高于首页?
  • ​​​​​​​​​​​​​​Γ函数
  • ​HTTP与HTTPS:网络通信的安全卫士
  • ​LeetCode解法汇总2696. 删除子串后的字符串最小长度
  • ​sqlite3 --- SQLite 数据库 DB-API 2.0 接口模块​
  • ​探讨元宇宙和VR虚拟现实之间的区别​
  • ​总结MySQL 的一些知识点:MySQL 选择数据库​
  • # 深度解析 Socket 与 WebSocket:原理、区别与应用
  • # 数论-逆元
  • #include<初见C语言之指针(5)>
  • (06)Hive——正则表达式
  • (3)(3.5) 遥测无线电区域条例
  • (C#)Windows Shell 外壳编程系列4 - 上下文菜单(iContextMenu)(二)嵌入菜单和执行命令...
  • (补充)IDEA项目结构
  • (附源码)ssm失物招领系统 毕业设计 182317
  • (十三)MipMap
  • (四)Tiki-taka算法(TTA)求解无人机三维路径规划研究(MATLAB)
  • (四)进入MySQL 【事务】
  • (算法)区间调度问题
  • (原創) 系統分析和系統設計有什麼差別? (OO)
  • .NET 4.0中使用内存映射文件实现进程通讯
  • .net core IResultFilter 的 OnResultExecuted和OnResultExecuting的区别
  • .NET MVC 验证码
  • .Net MVC4 上传大文件,并保存表单