一、网关
网关提供的功能
-
针对所有的请求进行统一的鉴权,限流,缓存,日志
-
协议转化。针对后端多种不同的协议,在网关层统一进行处理后以HTTP对外提供服务
-
提供了统一的错误码
-
请求转发,并且可以基于网关实现内网与外网的隔离
网关的鉴权认证
主要功能:
-
身份认证
-
访问权限控制
灰度发布
常见网关
-
OpenRestry
OpenRestry实际上是由Nginx与Lua集成的一个高性能web应用服务器,内部集成了大量的Lua库和第三方模块
可以在不同的阶段来挂载Lua脚本实现不同阶段的自定义行为
OpenRestry实现网关功能的核心就是在这11个步骤中挂载Lua脚本来实现功能的扩展的
-
Zuul
Zuul是Netflix开元的微服务的网关
Zuul的核心由一系列的过滤器组成,他定义了4中标准类型的过滤器,这些会对应请求的整个生命周期
-
Gateway
Spring Cloud Gateway是Spring的Api网关技术,主要是为了取代Zuul为微服务提供一个简单高效的API网关
Zul 1.x采用的是传统的thread per conection方式来处理请求,也就是针对每一个请求,会为这个请求专门分配一个线程来进行处理,直到这个请求完成之后才会释放线程,一
旦后台服务器响应较慢,就会使得该线程被阻塞,所以它的性能不好。
Gateway
Gateway的请求处理过程
RoutePredicateFactory