根据SpringCloud的介绍Zuul是Netflix的基于JVM的路由器和服务器端负载均衡器。
先说明两个概念:路由配置和路由规则,路由配置是指配置某请求路径路由到指定的目的地址;路由规则是指匹配到路由配置之后,再进行自定义的规则判断,规则判断可以更改路由目的地址
zuul的配置:
1. Zuul默认会将通过以服务名作为ContextPath的方式创建路由映射,比如将path:/user/**的请求转发到service-id=user的服务上(根据ContextPath查找对应的服务,需要结合服务发现机制如Eureka等);
2. 显式声明路由配置:
zuul.routes.user.path: /user/**
zuul.routes.user.service-id: user-service
- 反向代理:
zuul.routes.user.path: /user/**
zuul.routes.user.url: http://localhost:8081,http://www.baidu.com
url路由的这种方式不支持负载均衡
- 使用URL支持负载均衡的方式:
zuul.routes.user.path: /user/**
zuul.routes.user.service-id: stores ##stores为自定义的服务名
ribbon.eureka.enabled:false ## 不从eureka获取服务列表信息
stores.ribbon.listOfServers: http://localhost:8081, http://localhost:8082
如果不采用默认的路由规则,在修改路由规则配置后需要重启服务,zuul默认的路由都是在properties里配置的,如果需要动态路由,需要自己实现,可参考大牛的文章《
基于Spring-Cloud-Zuul构建网关
》
版权声明:本文为luoyoub原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。