SpringCloud:路由ZUUL的配置详解 |
您所在的位置:网站首页 › zuul怎么读音 › 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 |
今日新闻 |
推荐新闻 |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |