1.GateWay是什么?
gateway也叫服务网关,SpringCloud GateWay使用的是Webflux 中的reactor-netty 响应式编程组件,底层使用了Netty通讯框架。
gateway的功能有反向代理、鉴权、流量控制、熔断、日志监控......
2.为什么不使用Zuul?
当时Zuul2.0迟迟不发布是一个原因,关键点是Zuul1.X是一个阻塞式的网关,不支持任何长连接,请求线程一直要被阻塞到工作线程一直结束,所以Zuul1.X的性能较差。而Zuul2.0又一直跳票,所以SpringCloud就子研了GateWay网关,功能强大,并且是异步非阻塞的。
3.GateWay的三大核心概念
-
Route(路由)
GateWay配置的动态路由lb,也有负载均衡,可以去匹配提供服务的路由地址。
-
Predicate(断言)
说白了,断言就是定义了一组匹配规则,让过来的请求根据断言匹配找到相对应的路由然后进行转发。
- Filter(过滤)
我们都是使用自定义过滤器,可以进行一些全局日志记录,统一网关鉴权.........
4.请求到网关的运行流程
yml里面进行配置后,请求的基本流程就是先经过断言规则匹配,去找相对应的路由,如果对,则根据路由中的uri地址+接口进行路由转发,转发中还会通过过滤器(可以进行一些验证等等)。