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