cloud与docker 8.3 zuul的路由端点 路由详细配置

醉酒当歌 提交于 2020-02-05 01:06:12

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
标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!