• SpringCloud:路由ZUUL的配置详解


    以下是两种配置文件的配置方式,可以根据需要选取对自己项目有利的配置。

    自定义访问路径(path)

    配置application.yml文件

    #provider-user:是你的微服务模块的名称,及spring.application.name名称
    zuul:
      routes:
        provider-user: /user/**

    配置application.properties文件

    zuul.routes.provider-user.path=/user/**

    这样设置,provider-user微服务的访问路径就会被映射到/user/**路径,例如正常访问provider-user模块:localhost:8002/getUser 配置后需要访问zuul服务(假设我的zuul服务端口为8004,实际看自己的zuul服务端口):localhost:8004/user/getUser

    忽略指定微服务

    配置application.yml文件

    #多个微服务名称用,分隔开
    zuul:
      ignored-services: provider-user,consumer-movie

    配置application.properties文件

    zuul.ignored-services=provider-user,consumer-movie

    这样就可让Zuul忽略provider-user和consumer-movie微服务,只代理其他微服务

    忽略所有服务,只要指定服务

    配置application.yml文件

    # 使用'*'可忽略所有微服务
    zuul:
      ignored-services: '*'   
      routes:
        provider-user: /user/**

    配置application.propertion文件

    zuul.ignored-services=*
    zuul.routes.provider-user=/user/**

    让Zuul路由可以访问provider-user微服务。

    同时指定serviceId和访问路径(path)

    配置application.yml文件

    # 该配置方式中,provider-user只是给路由一个名称,可以任意起名。
    zuul:
      routes:
        provider-user:                   
          service-id: provider-user
          path: /user/**              # service-id对应的路径

    配置application.properties文件

    zuul.routes.provider-user.serviceId=provider-user
    zuul.routes.provider-user.path=/user/**

    与自定义访问路径一样效用,微服务就会被映射到/user/**路径。

    同时指定url和访问路径(path)

    配置application.yml文件

    # 该配置方式中,provider-user只是给路由一个名称,可以任意起名。
    zuul:
      routes:
        provider-user:                   
          url: http://localhost:8002/ # 指定的url
          path: /user/**              # service-id对应的路径

    配置application.properties文件

    zuul.routes.provider-user.url=http://localhost:8002
    zuul.routes.provider-user.path=/user/**

    /user/** 映射到http://localhost:8000/**路径

    使用这种方式配置的路由不会作为HystrixCommand执行,同时也不能使用Ribbon来负载均衡多个URL(下面的配置解决问题)

    同时指定url和访问路径(path),不破坏Zuul的Hystrix、Ribbon特性

    配置application.yml文件

    #在E版之后新增了负载均衡的配置。
    #配置中provider-user只是一个路由名称,可自定义名称 zuul: routes: provider-user: path: /user/** service-id: provider-user ribbon: eureka: enabled: false #禁止Ribbon使用Eureka provider-user: ribbon: listOfServers: localhost:8000,localhost:8001

    配置application.properties文件

    #配置中provider-user只是路由名称,可自定义
    zuul.routes.provider-user.path=/user/** zuul.routes.provider-user.serviceId=provider-user ribbon.eureka.enabled=false provider-user.ribbon.listOfServers=localhost:8002,localhost:8003

    既指定path与URL,又不破坏Zuul的Hystrix与Ribbon特性,解决了上面的问题。

    忽略一定范围的路径

    配置application.yml文件

    zuul:
      ignoredPatterns: /**/admin/**   # 忽略所有包含/admin/的路径
      routes:
        provider-user: /user/**

    配置application.properties文件

    zuul.ignored-patterns=/**/admin/**
    zuul.routes.provider-user:/user/**

    将microservice-provider-user微服务映射到/user/**路径,但会忽略该微服务中所有包含/admin/的路径.

    路由前缀

    配合prefix使用。

     配置application.yml文件

    zuul:
      prefix: /api
      strip-prefix: false
      routes:
        provider-user: /user/**
    
    #prefix全局配置前缀 api
    #strip-prefix:false 表示保留前缀访问(默认为true)
    #示例如下
    #strip-prefix:true : localhost:8004/api/user/getUser  自动转到路径  localhost:8002/user/getUser
    #strip-prefix:false : localhost:8004/api/user/getUser  自动转到路径  localhost:8002/user/api/getUser

    配置application.properties文件

    zuul.prefix=/api
    zuul.routes.provider-user.strip-prefix=false
    zuul.routes.provider-user=/user/**
    prefix全局配置前缀 api
    strip-prefix:false 表示保留前缀访问(默认为true)
    示例如下
    strip-prefix:true : localhost:8004/api/user/getUser  自动转到路径  localhost:8002/user/getUser
    strip-prefix:false : localhost:8004/api/user/getUser  自动转到路径  localhost:8002/user/api/getUser

    小技巧

    如无法掌握Zuul路由的规律,可将com.netflix包的日志级别设为DEBUG。这样,Zuul就会打印转发的具体细节,从而帮助我们更好地理解Zuul的路由配置

    配置application.yml文件

    logging:
      level:
        com.netflix: DEBUG

    配置application.properties文件

    logging.level.com.netflix=DEBUG

    文章转载至:https://my.oschina.net/eacdy/blog/3006505

  • 相关阅读:
    SQL Server 2000 JDBC驱动的完整安装及测试说明
    Google 免费:搜索本站内容
    阳光下旅行
    佛说五百年的回眸才换来今生的擦肩而过
    在程序中调用“数据链接属性”对话框,产生连接字符串
    ╭☆难以割舍^_^就是牵挂☆╮
    java打包详解
    .NET 自定义实体类简介
    C#中方法的参数有四种类型
    DataSet操作数据库
  • 原文地址:https://www.cnblogs.com/nhdlb/p/12604130.html
Copyright © 2020-2023  润新知