Zuul配置

  

概述:zuul底层是基于servlet,是由一系列的过滤器链构成。

1,路由配置官网www.1b23.com

,单例serverId映射

 zuul:
  路线:
  客户机—一种:
  路径:/客户/* *
  serviceId:客户机—一种

意思是,以/客户/* *为端点路径的服务都映射到客户机—一种,这种配置还可以简写成下面的格式,二者效果完全一致:

 zuul:
  路线:
  客户机—一种:/客户/* * 

还有一种更粗暴的方式,就是映射的serverId都不用写,如下:

 zuul:
  路线:
  客户机—一种:

这种配置,zuul会为客户机—一种添加一个默认的映射规则,即:/客户/* *,相当于上面的第一种配置方式。

b,单例URL映射

这种配置意思就是,网关路由到具体的服务地址,即:将serverId替换成URL,如下:

 zuul:
  路线:
  客户机—一种:
  路径:/客户/* *
  url: http://localhost: 7070 #客户机—一种的地址

c,多实例路由

默认情况下zuul会使用尤里卡中集成的负载均衡功能,如果要使用丝带的负载均衡,就需要指定serverId,这个操作一定要禁用掉带使用尤里卡,具体操作如下:

 zuul:
  路线:
  ribbon-route:
  路径:/带/* *
  serviceId: ribbon-routeribbon:
  尤里卡:
  启用:假#禁止带使用Eurekaribbon-route:带:
  NIWSServerListClassName: com.netflix.loadbalancer.ConfigurationBasedServerList #定义获取服务列表方法
  NFLoadBalancerRuleClassName: com.netflix.loadbalancer.RandomRule #丝带磅策略使用随机负载策略
  listOfServers: localhost: 7070, localhost: 7071 #客户服务丝带磅指定服务地址

d,丰华本地跳转

假如在网关服务中,需要做一些逻辑处理,可以在配置url时,添加丰华选项:

 zuul:
  路线:
  客户机—一种:
  路径:/客户/* *
  url:转发:/客户机#跳转到网关服务中@GetMapping(“/客户端”)端点

e,相同路径加载

 zuul:
  路线:客户b:
  路径:/客户/* *
  serviceId:客户b客户机—一种:
  路径:/客户/* *
  serviceId:客户机—一种

从上面的配置文件,可以看的出,配置了两个工程的路由,即:客户机—一种工程,客户b工程,但是二者的道路路径是一致的,这种情况下,在加载访问的时候,后者会覆盖前者。

f,路由通配符

规则说明示例/* *匹配任意数量的路径与字符/客户/添加/客户/更新,客户端/a,客户机/添加/客户/更新/a/b/*匹配任意数的字符/客户/添加/客户/更新,客户端//?匹配单个字符/客户/

2,功能配置

,屏蔽服务,屏蔽路径

 zuul: ignored-services:客户b #忽略的服务,防止服务侵入ignored-patterns:/* */div/* * #忽略的接口,屏蔽接口
  路线:
  客户机—一种:/客户/* * 

加上ignored-services <强>与 <强> ignored-patterns 之后,zuul在拉取服务列表的时候,创建映射规则的时候,就会忽略掉客户b服务和* */* */div/接口。

b,过滤掉敏感请求头

正常我们使用HTTP请求服务,在头添加值进行传递,是很正常的一件事,协议的一些基本认证也都在头,比如饼干,或者把登录认证通过后的用户信息base64编码后,放在授权里面,在系统内这种传递是没有问题的,但是如果系统与外部进行交互,这种可能就会出现异常,毕竟也要防患于未然,这时可以在zuul里边指定敏感头信息,切断它与下游的交互,如下:

 zuul:
  路线:
  客户机—一种:
  路径:/客户/* * sensitiveHeaders:饼干,set - Cookie,授权serviceId:客户机—一种

c,重定向

在实际企业级项目中,很多操作都是需要用户登录后,才可以进行操作的,为了防止用户登录成功后,在重定向的时候,将对应的服务地址暴露给用户,可以设置一个头,如下:

 zuul:
  add-host-header:真#重定向头问题
  路线:
  客户机—一种:/客户/* * 

d,重试机制

在生产环境中,可能由于各种原因,导致偶然请求失败,可以使用zuul结合丝带做重试操作,如下:

 zuul:
  的事情:真#开启重试
  
  带:
  MaxAutoRetries: 1 #同一个服务重试的次数(除去首次)
  MaxAutoRetriesNextServer: 1 #切换相同服务数量

但是,这个功能要慎用,因为有些接口需要保证幂等性。


Zuul配置