springCloud(14):使用Zuul构建微服务网关-路由端点与路由配置详解
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了springCloud(14):使用Zuul构建微服务网关-路由端点与路由配置详解相关的知识,希望对你有一定的参考价值。
一、Zuul的路由端点
当@EnableZuulProxy与SpringBoot Actuator配合使用时,Zuul会暴露一个路由管理端点/routes。借助这个端点,可以方便、直观地查看以及管理Zuul的路由。
/routes端点的使用非常简单,使用GET方法访问该端点,即可返回Zuul当前映射的路由列表;使用POST方法访问该端点就会强制刷新Zuul当前映射的路由列表(尽管路由会自动刷新,Spring Cloud依然提供了强制立即刷新的方式)。
由于spring-cloud-starter-zuul已经包含了spring-boot-starter-actuator,因此之前编写的microservice-gateway-zuul已具备路由管理的能力。
测试:
1、依次启动eureka-server(4010)、eureka-server-2(5010)、provide-user(4011)、hystrix-consumer-movie(5012)、microservice-gateway-zuul(5016)2、访问http://localhost:5016/routes,结果报401
解决:配置management.security.enabled=false
从中可以直观地看出路径到微服务的映射。
二、路由配置详解
前面已经编写了一个简单的Zuul网关,并让该网关代理了所有注册到Eureka Server的微服务。但在现实中可能只想让Zuul代理部分微服务,又或者需要对URL进行更加精确的控制。
2.1、自定义指定微服务的访问路径
配置zuul.routes.指定微服务的serverId = 指定路径即可。例如:
zuul: routes: hystrix-consumer-movie: /movie/**
效果:
2.2、忽略指定微服务
使用zuul.ignored-services配置需要忽略的服务,多个用逗号分隔,例如:
zuul: ignored-services: provide-user
效果:
2.3、忽略所有微服务,只路由指定微服务
将zuul.ignored-services设为‘*‘,routes配置指定的微服务,例如:
zuul: ignored-services: ‘*‘ routes: hystrix-consumer-movie: /movie/**
效果:
2.4、同时指定微服务的serviceId和对应的路径
zuul: routes: user-route: # user-route只是给路由一个名称,可以随便命名 service-id: hystrix-consumer-movie path: /movie/** # service-id对应的路径
效果与2.1一样。
2.5、同时指定path和URL
zuul: routes: user-route: # user-route只是给路由一个名称,可以随便命名 url: http://localhost:5200/ #指定URL path: /movie/** # URL对应的路径
说明:当访问http://localhost:5016/movie/user/1时,则会转发至http://localhost:5200/user/1
效果:
注意:使用这种方式配置的路由不会作为HystrixCommand执行,同时也不能使用Ribbon来负载均衡多个URL
2.6、同时指定path和URL,并且不破坏Hystrix、Ribbon特性
未完,待续..
本文出自 “我爱大金子” 博客,请务必保留此出处http://1754966750.blog.51cto.com/7455444/1958422
以上是关于springCloud(14):使用Zuul构建微服务网关-路由端点与路由配置详解的主要内容,如果未能解决你的问题,请参考以下文章
springCloud(13):使用Zuul构建微服务网关-简介
微服务架构整理-(十二SpringCloud实战之Zuul网关)
微服务架构整理-(十二SpringCloud实战之Zuul网关)
微服务架构整理-(十二SpringCloud实战之Zuul网关)