
微服务Api网关框架
来自 网络整理·免费领取学习资源
这份资料来自网络整理2026年的付费VIP课,内容以视频为主,对应《微服务Api网关框架》。官网需要单独购买,有集上可以免费领取。
最近 微服务架构在项目中的应用越来越多,我们知道在微服务架构风格中,一个大应用被拆分成为了多个小的服务系统提供出来,这些小的系统他们可以自成体系,也就是说这些小系统可以拥有自己的数据库,框架甚至语言等,这些小系统通常以提供 Rest Api 风格的接口来被 H5, Android, IOS 以及第三方应用程序调用
但是在UI上进行展示的时候,我们通常需要在一个界面上展示很多数据,这些数据可能来自于不同的微服务中,举个例子
在一个电商系统中,查看一个商品详情页,这个商品详情页包含商品的标题,价格,库存,评论等,这些数据对于后端来说可能是位于不同的微服务系统之中,可能我后台的系统是这样来拆分我的服务的:
产品服务 - 负责提供商品的标题,描述,规格等
价格服务 - 负责对产品进行定价,价格策略计算,促销价等
库存服务 - 负责产品库存
评价服务 - 负责用户对商品的评论,回复等
现在,商品详情页需要从这些微服务中拉取相应的信息,问题来了?
问题
由于我们使用的服务系统架构,所以没办法像传统单体应用一样依靠数据库的 join 查询来得到最终结果,那么如何才能访问各个服务呢?
按照微服务设计的指导原则,我们的微服务可能存在下面的问题:
服务使用了多种协议,因为不同的协议有不同的应场景用,比如可能同时使用 HTTP, AMQP, gRPC 等
服务的划分可能随着时间而变化
服务的实例或者Host+端口可能会动态的变化
那么,对于前端的UI需求也可能会有以下几种:
粗粒度的API,而微服务通常提供的细粒度的API,对于UI来说如果要调用细粒度的api可能需要调用很多次,这是个不小的问题
不同的客户端设备可能需要不同的数据。Web,H5,APP
不同设备的网络性能,对于多个api来说,这个访问需要转移的服务端会快得多
以上,就是我们构建微服务的过程中可能会遇到的问题。那么如何解决呢?
这种情况下, API 网关(API Gataway)诞生了
API 网关
API网关是一个服务器,是系统的唯一入口。从面向对象设计的角度看,它与外观模式类似。API网关封装了系统内部架构,为每个客户端提供一个定制的API。它可能还具有其它职责,如身份验证、监控、负载均衡、缓存、请求分片与管理、静态响应处理
API网关方式的核心要点是,所有的客户端和消费端都通过统一的网关接入微服务,在网关层处理所有的非业务功能。通常,网关也是提供REST/HTTP的访问API。服务端通过API-GW注册和管理服务
API网关网关的价值:
网关层对外部和内部进行了隔离,保障了后台服务的安全性
对外访问控制由网络层面转换成了运维层面,减少变更的流程和错误成本
减少客户端与服务的耦合,服务可以独立发展。通过网关层来做映射
通过网关层聚合,减少外部访问的频次,提升访问效率
节约后端服务开发成本,减少上线风险
为服务熔断,灰度发布,线上测试提供简单方案
当然现在市面上的Api网关开源项目,有以下项目
Tyk:Tyk是一个开放源码的API网关,它是快速、可扩展和现代的。Tyk提供了一个API管理平台,其中包括API网关、API分析、开发人员门户和API管理面板。Try 是一个基于Go实现的网关服务
Kong:Kong是一个可扩展的开放源码API Layer(也称为API网关或API中间件)。Kong 在任何RESTful API的前面运行,通过插件扩展,它提供了超越核心平台的额外功能和服务
Orange:和Kong类似也是基于OpenResty的一个API网关程序,是由国人开发的
Netflix zuul:Zuul是一种提供动态路由、监视、弹性、安全性等功能的边缘服务。Zuul是Netflix出品的一个基于JVM路由和服务端的负载均衡器
apiaxle: Nodejs 实现的一个 API 网关
api-umbrella: Ruby 实现的一个 API 网关
老顾这系列课程就给大家介绍一下nignx + lua方式的网关框架,也是很多公司常用的网关框架
课程目录
- 第1章 第一章
- 第1讲 漫谈网关架构免费 00:20:02| 下载课件
- 第2讲 网关技术选型免费 00:17:18| 下载课件
- 第3讲 nginx下载安装00:08:53
- 第4讲 正向代理、反向代理00:14:57
- 第5讲 nginx命令、信号控制00:14:39
- 第6讲 nginx平滑升级00:20:18
- 第7讲 nginx配置文件说明00:25:45
- 第8讲 nginx配置连接数00:19:48
- 第9讲 nginx虚拟主机00:25:28
- 第10讲 nginx日志以及切割00:51:05
- 第11讲 nginx的location详解00:30:24
- 第12讲 nginx的负载均衡00:20:53
- 第13讲 nginx的echo模块安装00:24:28
- 第14讲 openresty背景介绍00:24:37
- 第15讲 openresty安装00:19:15
- 第16讲 openresty的helloworld00:16:51
- 第17讲 lua介绍以及helloworld00:07:19
- 第18讲 lua基本语法一00:27:33
- 第19讲 lua基本语法二00:23:30
- 第20讲 lua基本语法三00:29:03
- 第21讲 lua基本语法四00:24:33
- 第22讲 lua运算符00:27:18
- 第23讲 lua控制结构一00:26:39
- 第24讲 lua控制结构二00:34:13
- 第25讲 lua的正则表达式00:43:10
- 第26讲 lua的string操作00:40:52
- 第27讲 lua的table操作00:38:19
- 第28讲 lua变量00:14:23
- 第29讲 lua时间操作00:10:44
- 第30讲 lua模块00:19:17
- 第31讲 lua元表00:47:17
- 第32讲 lua面向对象00:21:18
- 第33讲 openresty中使用lua00:56:30
- 第34讲 openresty中使用json模块00:27:49
- 第35讲 openresty中使用redis模块00:29:03
- 第36讲 openresty中封装redis操作00:12:25
- 第37讲 openresty中使用mysql00:16:17
- 第38讲 lua发起http请求00:30:48
- 第39讲 openresty中使用http模块00:09:57
- 第40讲 openresty中使用全局缓存00:16:04
- 第41讲 openresty执行流程00:31:10
- 第42讲 openresty执行详解之初始化阶段00:17:01
- 第43讲 openresty执行详解之重写赋值阶段00:19:21
- 第44讲 openresty执行详解之重写url阶段01:13:44
- 第45讲 openresty执行详解之访问阶段00:12:52
- 第46讲 openresty执行详解之内容阶段00:32:15
- 第47讲 openresty执行详解之响应阶段00:19:20
- 第48讲 openresty实现访问频率控制00:34:17
- 第49讲 openresty实现黑名单控制00:22:51
- 第50讲 openresty实现接口签名验证01:01:19
- 第51讲 openresty实现网关框架00:27:14| 下载课件
- 第52讲 openresty实现网关主入口00:22:15
- 第53讲 openresty实现网关插件可配置00:16:50
- 第54讲 openresty实现网关插件加载00:31:07
- 第55讲 openresy实现网关之签名验证插件00:09:46
- 第56讲 openresy实现网关之黑名单插件00:08:38| 下载课件
- 第57讲 openresty实现网关之频率插件00:13:20| 下载课件
- 第58讲 网关框架总结00:17:48| 下载课件
包含内容
- · 第1章 第一章
贡献者