接着前一篇的文章Zuul基本路由配置(二)
1.功能前缀
配置路由规则的时候,我们可以配置一个统一的代理前缀。
zuul:
routes:
client-a:
path: /client/**
serviceId: client-a
prefix: /pre
访问的时候就要加上这个前缀了,如:http://localhost:8888/pre/client/user/add?id=1。
2.服务屏蔽与路径屏蔽
有时候为了避免有些服务或者路径入侵,可以将它们屏蔽掉
zuul:
ignored-services: client-b #忽略服务,防止服务入侵
ignored-patterns: /**/div/** #忽略接口,屏蔽接口
prefix: /pre
routes:
client-a: /client/**
3.敏感头信息
在构建系统的时候,使用HTTP的header传值是十分方便的,协议的一些认证信息默认也在header,比如cookie,或者习惯把基本认证通过base64加密后放在Authorization里面。在我们系统内部系统没有什么问题,但是如果系统要和外部系统打交道,就可能会出现这些信息 的泄露。在zuul的配置里可以指定敏感头,切断它和下层服务的交互。
zuul:
routes:
client-a:
path: /client/**
sensitiveHeaders: Cookie,Set-Cookie,Authorization
serviceId: client-a
4.重定向问题
重定向后返回之前的host
zuul:
routes:
client-a: /client/**
add-host-header: true
5.重试机制
生产环境中,由于各种原因,可能会使一次请求偶然失败,考虑到某些业务的体验,不能通过有感知的操作来触发,这时候就会用到重试机制了,Zuul可以配合Ribbon(默认个集成)来做重试。
zuul:
retryable: true #开启重试
ribbon:
MaxAutoRetries: 1 #同一个服务重试的次数(除去首次)
MaxAutoRetriesNextServer: 1 #切换相同服务数量
当然,此功能要慎用,有一些接口要保证幂等性,一定要做好相关工作。