服务网关Zuul分析①分发

功能角色:

  在SpringCloud中充当服务网关的角色,它包含了鉴权、流量转发、请求统计等等功能

核心:

  Filter是Zuul的核心,用来实现对外服务的控制。Filter的生命周期有4个,分别是“PRE”、“ROUTING”、“POST”、“ERROR”,整个生命周期可以用下图来表示。

                                                   

  • PRE: 这种过滤器在请求被路由之前调用。我们可利用这种过滤器实现身份验证、在集群中选择请求的微服务、记录调试信息等。
  • ROUTING:这种过滤器将请求路由到微服务。这种过滤器用于构建发送给微服务的请求,并使用Apache HttpClient或Netfilx Ribbon请求微服务。
  • POST:这种过滤器在路由到微服务以后执行。这种过滤器可用来为响应添加标准的HTTP Header、收集统计信息和指标、将响应从微服务发送给客户端等。
  • ERROR:在其他阶段发生错误时执行该过滤器。 除了默认的过滤器类型,Zuul还允许我们创建自定义的过滤器类型。例如,我们可以定制一种STATIC类型的过滤器,直接在Zuul中生成响应,而不将请求转发到后端的微服务。    
                                       

 

application.properties中配置:

  禁用一些Filter的配置:

  zuul.FormBodyWrapperFilter.pre.disable= true

  路由的配置:

   # 配置需要被跳转的地址

  zuul.routes.user.path=/user/**

  # 重定向的地址
  zuul.routes.user.url=http://127.0.0.1:8081/

自定义Filter: 

  根据场景需要,我们也可以自定义一些filter,穿插在整个过程的某个阶段,只需要继承ZuulFilter,并且覆盖里面的4个方法就可以了.

  

 

posted @ 2019-05-13 09:53  飞鸟灬  阅读(671)  评论(0编辑  收藏  举报