Zuul 路由配置

版权声明: https://blog.csdn.net/wo18237095579/article/details/83539244

单实例 serviceId 映射

  • 详细配置
### 网关配置
zuul:
  # 路由信息配置
  routes:
    # 针对某个服务的配置,可自定义
    demo-order:
      # 访问的路径,此处要以 '/do/' 开头
      path: /do/**
      # 后端服务的实例 Id。
      # 意思:以 '/do/' 开头的请求,都会向后端服务 'demo-order' 进行转发
      serviceId: demo-order
      # 剥夺前缀,此配置是针对上方 'path' 配置的项
      # 为 true 的情况下:向后端转发之后是不会携带 '/do' 的。为 false 则相反
      stripPrefix: true
      # 不向后端服务传递的敏感头信息
      sensitiveHeaders: Cookie,Set-Cookie,Authorization

  ⤴️上面是一种比较全面、手动指定的配置方式。

  • 简单配置,只抒写映射规则,默认 serviceId 就是:demo-order
### 网关配置
zuul:
  # 路由信息配置
  routes:
    # 针对某个服务的配置,可自定义
    demo-order: /do/**

  与详细配置等价。

  • 极简配置,映射规则都没有,默认规则为:/demo-order/**,默认 serviceId 就是:demo-order
### 网关配置
zuul:
  # 路由信息配置
  routes:
    # 针对某个服务的配置,可自定义
    demo-order: 

单实例 url 映射

  处理使用 serviceId 之外,还可以使用指定 url 的方式:

### 网关配置
zuul:
  # 路由信息配置
  routes:
    # 针对某个服务的配置,可自定义
    demo-order: 
    	# 访问的路径,此处要以 '/do/' 开头
    	path: /do/**
    	# demo-order 的地址
    	url: http://localhost:11100

使用 Ribbon 的负载均衡路由

  在默认情况下,Zuul 会使用 Eureka 中集成的基本负载均衡功能,如果想要使用 Ribbon 的负载均衡功能,就需要指定一个 serviceId,此操作需要禁止 Ribbon 使用 Eureka,在 E 版之后,新增了负载均衡策略的配置,如下配置:

### 网关配置
zuul:
  # 路由信息配置
  routes:
    # 针对某个服务的配置,可自定义
    demo-order:
      # 访问的路径,此处要以 '/do/' 开头
      path: /do/**
      # 后端服务的实例 Id。
      # 意思:以 '/do/' 开头的请求,都会向后端服务 'demo-order' 进行转发
      serviceId: demo-order

### Ribbon 配置
ribbon:
  eureka:
    # 禁止使用Eureka,使用 Ribbon 负载均衡功能
    enabled: false

### 在 E 版之后,Ribbon 新增了负载均衡策略的配置
demo-order:
  ribbon:
    # 基于自己配置的 服务列表 方式
    NIWSServerListClassName: com.netflix.loadbalancer.ConfigurationBasedServerList
    # Ribbon 负载策略
    NFLoadBalancerRuleClassName: com.netflix.loadbalancer.RandomRule
    # 可以指定 Ribbon 的负载服务
    listOfServers: localhost:11100,localhost:11101

forward 本地跳转

  网关 Controller 代码:

/**
 * @Author:大漠知秋
 * @Description:网关本地的 Controller
 * @CreateDate:1:33 PM 2018/10/30
 */
@RestController
@RequestMapping(
        value = "/local",
        produces = MediaType.APPLICATION_JSON_UTF8_VALUE
)
public class LocalController {

    @RequestMapping(value = "/testOne")
    public String testOne() {

        return "testOne";

    }

}

  通过 /local 来访问配置:

### 网关配置
zuul:
  # 路由信息配置
  routes:
    demo-local:
      # 访问的路径,此处要以 '/do/' 开头
      path: /local/**
      # 访问的 url,forward:向本地转发
      url: forward:/local

路径映射规则

加载顺序

  如下配置:

### 网关配置
zuul:
  # 路由信息配置
  routes:
    demo-order:
      path: /do/**
      serviceId: demo-order
      stripPrefix: true
    demo-goods:
      path: /do/**
      serviceId: demo-goods
      stripPrefix: true

  这种情况下,全部都会路由到 demo-goods 服务上,在 yml 解析时,会把后边的覆盖掉前面的。

通配符

规则 说明 样例
/** 匹配任意数量的路径与字符 /client/add,/client/a,/client/a/b/c
/* 匹配任意数量的字符 /client/add,/client/a,/client/abc
/? 匹配单个字符 /client/a,/client/b,/client/c

猜你喜欢

转载自blog.csdn.net/wo18237095579/article/details/83539244
今日推荐