Zuul 特点 典型应用场景及配置

一:特点:

路由+过滤器=Zuul

核心为一系列的过滤器

二:前置过滤器(Pre)作用:

1.限流(流量过大时,依据某种规则把请求挡回去,后续的逻辑就不在处理了)

2.鉴权(如果发现没有访问权限,直接就拦截了 )

3.参数检验调整

三:后置过滤器(Post)

1.统计

2.日志

四:异常处理器(error)

一般会在error类型和post类型过滤器中结合来处理。

服务调用时长统计:pre和post结合使用。

---------------------------------

在配置文件中的配置

server:
  port: 10010 #服务端口
spring:
  application:
    name: api-gateway #指定服务名
zuul:
  routes:
    service-provider: # 这里是路由id,随意写
      path: /service-provider/** # 这里是映射路径
      url: http://127.0.0.1:8081 # 映射路径对应的实际url地址

我们将符合path 规则的一切请求,都代理到 url参数指定的地址

本例中,我们将 /service-provider/**开头的请求,代理到http://127.0.0.1:8081

同一服务有多个实例的话,服务网关项目中加入eurekaClient后

zuul:
  routes:
    service-provider: # 这里是路由id,随意写
      path: /service-provider/** # 这里是映射路径
      serviceId: service-provider # 指定服务名称

---------------------------

路由前缀

配置示例:

zuul:
  routes:
    service-provider: /service-provider/**
    service-consumer: /service-consumer/**
  prefix: /api # 添加路由前缀

我们通过zuul.prefix=/api来指定了路由的前缀,这样在发起请求时,路径就要以/api开头。

--------------------------------------------

过滤器执行生命周期

这张是Zuul官网提供的请求生命周期图,清晰的表现了一个请求在各个过滤器的执行顺序。

正常流程:

  • 请求到达首先会经过pre类型过滤器,而后到达route类型,进行路由,请求就到达真正的服务提供者,执行请求,返回结果后,会到达post过滤器。而后返回响应。

异常流程:

  • 整个过程中,pre或者route过滤器出现异常,都会直接进入error过滤器,在error处理完毕后,会将请求交给POST过滤器,最后返回给用户。

  • 如果是error过滤器自己出现异常,最终也会进入POST过滤器,将最终结果返回给请求客户端。

  • 如果是POST过滤器出现异常,会跳转到error过滤器,但是与pre和route不同的是,请求不会再到达POST过滤器了。

发布了43 篇原创文章 · 获赞 2 · 访问量 648

猜你喜欢

转载自blog.csdn.net/qq_33348135/article/details/104108668