服务网关:(gateway)

三大核心概念:Route(路由)、Predicate(断言)、Filter(过滤)


Filter(过滤):指定是Spring框架中GetwayFilter的实例,使用过滤器,可以在请求被路由前或者之后请求进行修改。


Predicate(断言):开发人员可以匹配HTTP请求中的所有内容(例如请求头或请求参数),如果请求与断言想匹配则进行路由。

Route(路由):是构建网关的基础模块,它由ID、URI、一系列的断言和过滤器组成 ,如果断言为true则则匹配该路由。

总体:WEB请求,通过一些匹配条件,定位到真正的服务节点,并在这个转发过程的前后,进行一些精细化控制。 Predicate(断言) 就是我们的匹配条件;而Filter(过滤),就可以理解为一个无所不能的拦截器,有了这两个元素,再加上目标uri,就可以实现一个具体的Route(路由)了。



gateway工作流程

客户端发出请求 后,在处理映射中找到与请求想匹配的路由,将其发送到Gateway Web Handler。Handler 再通过Filter过滤器将请求发送到我们实际的业务逻辑中执行,然后返回。
在通过过滤器之前pre)我们可以做参数校验、权限校验、流量监控、日志输出、协议转换等
在通过过滤器之后post)我们可以做响应内容、响应头修改、日志输出、流量监控等。


构建gateway网关

流程图:(差)

Spring Cloud第七天


1、建立子模块

2、改pom(不要WEB相关的两个依赖)
Spring Cloud第七天

3、改Yml
Spring Cloud第七天

4、业务类(无)

5、主启动类
Spring Cloud第七天

6、9527网关做路由映射
Spring Cloud第七天

7、Yml新增网关配置
Spring Cloud第七天

8、测试
Spring Cloud第七天

9、Yml配置说明
Spring Cloud第七天



通过微服务名实现动态路由:(默认情况下Gateway会根据注册中心注册的服务列表,以注册中心上微服务名为路径创建动态路由进行转发,从而实现动态路由功能。)

流程图:
Spring Cloud第七天

1、改pom(eureka服务注册中心)
Spring Cloud第七天

2、改yml
Spring Cloud第七天

3、测试
Spring Cloud第七天

Predicate(断言)

Predicate下的为条件,满足的话返回(True)执行,不满足返回(false)不执行。


Spring Cloud第七天


Spring Cloud第七天

Filter(过滤器)

概念Spring Cloud第七天

Spring Cloud第七天

自定义过滤器(全局过滤器GatewayFilter)
Spring Cloud第七天

自定义全局过滤器类
Spring Cloud第七天
测试:
Spring Cloud第七天
Spring Cloud第七天
Spring Cloud第七天
Spring Cloud第七天

总结
Gateway网关,主要由路由 负责,挡在访问的最前面,路由由(id,断言,拦截器构成),访问过来时,拦截器可以进行设置条件判断方法是否合法,在由断言进行判断访问是否满足它所设定的条件,满足返回true放行,否则false。 自定义全局拦截器:实现GlobalFilter,Ordered两个接口,来设定具体说明看上面演示示例

相关文章:

  • 2021-07-29
  • 2022-12-23
  • 2021-12-16
  • 2022-12-23
  • 2022-02-28
  • 2021-09-12
  • 2021-04-28
  • 2021-11-28
猜你喜欢
  • 2021-04-12
  • 2021-11-21
  • 2021-09-25
  • 2022-01-26
  • 2021-10-05
  • 2021-08-15
相关资源
相似解决方案