cloud与docker zuul的路由端点
暴露 路由端点 /routes
@EnableZuulProxy 与 actuator 配合使用,zuul会暴露 路由端点 /routes
get访问, 获得路由列表
post访问,强制刷新路由列表
starter-zuul已经包含了 actuator
http://localhost:8040/routes
{
"/microservice-consumer-movie/**": "microservice-consumer-movie",
"/microservice-provider-user/**": "microservice-provider-user"
}
路由配置详细
1 自定义微服务的路径:
eureka:
client:
service-url:
defaultZone: http://localhost:8761/eureka/
instance:
prefer-ip-address: true
zuul:
routes:
microservice-provider-user: /user/**
management:
security:
enabled: false
2 指定忽略的微服务:
zuul:
ignored-services: microservice-provider-user,microservice-consumer-movie
3 指定路由的服务,忽略其他的
zuul:
ignored-services: '’ # 使用’'可忽略所有微服务
routes:
microservice-provider-user: /user/**
4 指定微服务的service id 和对应路径:
zuul:
routes:
user-route: # 该配置方式中,user-route只是给路由一个名称,可以任意起名。
service-id: microservice-provider-user
path: /user/** # service-id对应的路径
和第一个配置是一样的:
zuul:
routes:
microservice-provider-user: /user/**
5 同时指定path和url
zuul:
routes:
user-route: # 该配置方式中,user-route只是给路由一个名称,可以任意起名。
url: http://localhost:8000/ # 指定的url
path: /user/** # url对应的路径。
访问: /user/** ,会映射到 http://localhost:8000/ ;
这种方法配置,将不会有hystrix和ribbon
6 指定url和path,并且不破坏hystrix和ribbon
zuul:
routes:
user-route:
path: /user/**
service-id: microservice-provider-user
ribbon:
eureka:
enabled: false # 禁用掉ribbon的eureka使用。详见:http://cloud.spring.io/spring-cloud-static/Camden.SR3/#_example_disable_eureka_use_in_ribbon
microservice-provider-user:
ribbon:
listOfServers: localhost:8000,localhost:8001
management:
security:
enabled: false
禁用掉ribbon的eureka使用,利用ribbon的listOfServers负载均衡
7 使用正则表达式指定zuul的路由规则
@Bean
public PatternServiceRouteMapper serviceRouteMapper(){
//微服务的正则,路由的正则
return new PatternServiceRouteMapper(
"(?<name>^.+)-(?<version>v.+$)",
"${version}/${name}");
}
microservice-provider-user-v1
将会映射到:/v1/microservice-provider-user
8 前缀路由:
zuul:
prefix: /api
strip-prefix: false
routes:
microservice-provider-user: /user/**
logging:
level:
com.netflix: DEBUG
management:
security:
enabled: false
访问Zuul的/api/microservice-provider-user/1路径,请求将会被转发到microservice-provider-user的/api/1,可查看日志打印,有助于理解。
或者:
zuul:
routes:
microservice-provider-user:
path: /user/**
strip-prefix: false
访问:/user/1 会被转发到 microservice-provider-user的 /user/1
忽略某些路径:
zuul:
ignoredPatterns: /**/admin/** # 忽略所有包括/admin/的路径
routes:
microservice-provider-user: /user/**
可以将:microservice-provider-user 映射到/user/**
同时又忽略
logging:
level:
com.netflix: DEBUG
本地转发:
zuul:
routes:
route-name:
path: /path-a/**
url: forward:/path-b
来源:CSDN
作者:天海华兮
链接:https://blog.csdn.net/qq120631157/article/details/104175499