路由配置规则
Zuul提供了多种机制对请求路由进行映射:
- 与Eureka服务器整合自动根据服务的ID进行映射,默认机制。
- 结合微服务ID通过自定义方式进行路由映射。
- 直接使用静态URL路径的方式对微服务进行理由映射。
- 添加全局路由映射
- 通过自定义路由转换器,实现更灵活的路由映射。
1、服务路由默认规则
Zuul可以自动根据Eureka服务器中所注册的服务自动完成路由映射、负载均衡。
http://[zuul路由服务器地址]/[serviceId]/[URI]
![94ee378ad8323e9d5801016961c79660.png](https://img-blog.csdnimg.cn/img_convert/94ee378ad8323e9d5801016961c79660.png)
2、自定义微服务访问路径
可以在Zuul路由服务器配置文件进行配置
![1131a36c23627d6c5dea6993272ce8b0.png](https://img-blog.csdnimg.cn/img_convert/1131a36c23627d6c5dea6993272ce8b0.png)
![dd91bcf4a70ca5d0e3df06ae529f7a0d.png](https://img-blog.csdnimg.cn/img_convert/dd91bcf4a70ca5d0e3df06ae529f7a0d.png)
3、忽略指定微服务
我们制定了producet的路由设置,但是之前的http://localhost:8300/product-service/product/comment还是能继续访问。那么就需要把默认的路由映射忽略掉。
这样原有的路由就方位不了了,如果忽略全部服务的路由映射,ignored-services: "*"就可以。
![f6a41f0bd51b8c1543e95b3722723b24.png](https://img-blog.csdnimg.cn/img_convert/f6a41f0bd51b8c1543e95b3722723b24.png)
![7fdafc1961394cd4f029aadaf2fd5c44.png](https://img-blog.csdnimg.cn/img_convert/7fdafc1961394cd4f029aadaf2fd5c44.png)
4、设置路由前缀
![3d53793400d90f7c2d3ea20983e74ba2.png](https://img-blog.csdnimg.cn/img_convert/3d53793400d90f7c2d3ea20983e74ba2.png)
![40fc2a4cfec29ea305a174be5fe33cc2.png](https://img-blog.csdnimg.cn/img_convert/40fc2a4cfec29ea305a174be5fe33cc2.png)
Zuul代理默认转发到服务实例时会自动去掉prefix前缀。如果需要转发时带上的话,则增加zuul.stripPrefix=fasle设置。
5、通过静态URL路径配置路由映射
对于没有注册到Eureka服务器中的服务,可以通过在Zuul理由服务器中配置静态URL,来进行服务的路由映射。
因为没有经过Eureka服务器,就用不到Ribbon的负载均衡了。这种情况下,需要禁用Ribbon与Eureka的自动继承设置,采用手动设置的方法开启。
![be86bd818b6b6d6543ef78275ff0a8e5.png](https://img-blog.csdnimg.cn/img_convert/be86bd818b6b6d6543ef78275ff0a8e5.png)
6、自定义路由规则
![0d499572913293d7f13c952653d108dd.png](https://img-blog.csdnimg.cn/img_convert/0d499572913293d7f13c952653d108dd.png)
Zuul路由其他设置
1、Header设置
敏感Header设置:默认情况下,Zuul在请求路由时,会过滤HTTP请求头信息中的一些敏感信息。
![7c5f80b4e2d3ce3c6440086fac01eeb7.png](https://img-blog.csdnimg.cn/img_convert/7c5f80b4e2d3ce3c6440086fac01eeb7.png)
忽略Header设置:
![03a537143aa0a3f0c6ea3787ff54acb4.png](https://img-blog.csdnimg.cn/img_convert/03a537143aa0a3f0c6ea3787ff54acb4.png)
![9948ccfed814f5cc2011bd8657e7af4c.png](https://img-blog.csdnimg.cn/img_convert/9948ccfed814f5cc2011bd8657e7af4c.png)
2、HttpClient配置
Zuul的HTTP客户端支持Apache Http、Ribbon的RestClient、OkHttpClient,默认使用Apache HTTP客户端。
![03e77999719e2318fc31c31cb33ee31d.png](https://img-blog.csdnimg.cn/img_convert/03e77999719e2318fc31c31cb33ee31d.png)
3、路由配置的动态加载
Spring Cloud Config子项目提供了配置文件的统一管理,需要将配置文件yml文件抽取统一存放在版本管理服务器上,然后将Zuul路由服务器的配置从统一的管理服务器中进行加载。当需要修改路由映射规则时,就需要将修改后的配置文件提交到Git中,然后在Zuul路由服务器中使用/refresh端点重新加载配置。