SpringCloud学习–基础–6.1–Gateway–介绍
1、介绍
- 基于Filter链提供网关基本功能:安全、监控、埋点、限流等。
- 为微服务架构提供简单、有效且统一的API路由管理方式。
- 是替代Netflix Zuul的一套解决方案。
- 组件的核心是一系列的过滤器
- 通过这些过滤器可以将客户端发送的请求转发(路由)到对应的微服务。
- 是加在整个微服务最前沿的防火墙和代理器,隐藏微服务结点IP端口信息,从而加强安全保护。
- 本身也是一个微服务,需要注册到Eureka服务注册中心。
- 核心功能
- 过滤
- 路由
2、架构
- 不管是来自于客户端(PC或移动端)的请求,还是服务内部调用。一切对服务的请求都可经过网关,然后再由网关来实现鉴权、动态路由等等操作。
- Gateway就是我们服务的统一入口。
3、基本概念
3.1、路由(route)
- 由一个ID、一个目的URL、一组断言工厂、一组Filter组成。
- 如果路由断言为真,说明请求URL和配置路由匹配。
3.2、断言(Predicate)
- Spring Cloud Gateway中的断言函数输入类型是Spring 5.0框架中的ServerWebExchange。
- Spring Cloud Gateway的断言函数允许开发者去定义匹配来自于Http Request中的任何信息,比如请求头和参数。
3.3、过滤器(Filter)
- 一个标准的Spring WebFilter。
- Spring Cloud Gateway中的Filter分为两种类型
- Gateway Filter
- Global Filter。
- 过滤器Filter将会对请求和响应进行修改处理。
4、Gateway与Feign的区别
4.1、Gateway
- 作为整个应用的流量入口,接收所有的请求,如PC、移动端等,并且将不同的请求转发至不同的处理微服务模块,其作用可视为nginx;
- 大部分情况下用作权限鉴定、服务端流量控制
4.2、Feign
- 将当前微服务的部分服务接口暴露出来
- 主要用于各个微服务之间的服务调用