根据SpringCloud的介绍Zuul是Netflix的基于JVM的路由器和服务器端负载均衡器。
先说明两个概念:路由配置和路由规则,路由配置是指配置某请求路径路由到指定的目的地址;路由规则是指匹配到路由配置之后,再进行自定义的规则判断,规则判断可以更改路由目的地址
zuul的配置:
- zuul默认的路由配置是将path:/user/**的请求转发到service-id=user的服务上(根据path查找对应的服务,需要结合服务发现机制);
- 显式声明路由配置:
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支持负载均衡的方式:
ribbon.eureka.enabled:false ## 不从eureka获取服务列表信息
stores.ribbon.listOfServers: http://localhost:8081, http://localhost:8082
如果不采用默认的路由规则,在修改路由规则配置后需要重启服务,zuul默认的路由都是在properties里配置的,如果需要动态路由,需要自己实现,可参考大牛的文章《基于Spring-Cloud-Zuul构建网关》
网友评论