-
没有网关时带来的问题
- 增加系统的复杂性,客户端只能自己做逻辑来访问不同的服务
- 权限问题,不同的用户角色都有自己的权限。将此业务逻辑写在服务端会使得服务端业务耦合
- 协议问题,不同的服务可能采用不同的编程语言编写
-
网关带来的好处
- 权限验证、流量限制、日志打点、缓存
- 安全(IP 过滤等)
- 协议转换,针对后端多种不同的协议,在网管层统一处理之后以 http 对外提供服务
- 提供统一的错误码
-
网关应用
-
鉴权认证(统一认证中心)
- 身份认证
- 访问权限认证
-
灰度发布(分流引擎)
只升级部分服务,让一部分用户继续使用老版本,一部分用户使用新版本,如果用户对于新版本没什么意见,则将所有用户迁移到新版本上来
-
-
OpenResty是由Ngnix和Lua集成的一个高性能Web应用服务器- 生命周期
-
ZuulNetflix的开源的微服务网管Zuul的核心由一系列的过滤器组成,它定义了四种标准类型的过滤器,这个会对应请求的整个生命周期
-
Gateway-
Spring提供的API网关技术,目的是取代Zuul -
Zuul存在的缺陷Zuul 1.x采用的是传统的thread per connection的方式来处理请求,因此性能不好Zuul 2.x虽然是一个高性能的网关,但是由于发布时间的原因,Spring Cloud并没有集成它
-
Spring Cloud Gateway是依赖于Spring Boot 2.0、Spring WebFlux、Project Reactor等技术开发的网关,不仅提供了统一的路由请求方式,还基于过滤链的方式提供了网管最基本的功能 -
Gateway的请求处理流程
Predicate:Http请求的属性对应的Predicate,RoutePredicateFactoryFilter:类型:(1)
Pre型过滤器 (2)Post类型过滤器Filter实现方式:(1)Gateway只会应用到单个路由或者一个分组的路由 (2)Global Filter 会应用到所有的路由Filter实现类 -
-
NacOS 集成
-
Sentinel- 自定义异常






